Bug #96576 MySQL Installer installs MySQL for Visual Studio to wrong locations on disck
Submitted: 16 Aug 2019 19:50 Modified: 19 Sep 2019 15:45
Reporter: Anthony Cary Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Visual Studio Integration Severity:S2 (Serious)
Version:8.0.17.0 OS:Windows (10)
Assigned to: CPU Architecture:Any

[16 Aug 2019 19:50] Anthony Cary
Description:
When performing an install of MySql for Visual Studio to Visual Studio 2017, files are copied to the wrong locations, resulting in a failure. There is no error message or warning, but none of the MySql for Visual Studio features are available in Visual Studio 2017. 

OS: Windows 10 
Visual Studio version: I have Visual Studio 2017 Enterprise, and Visual Studio 2019 Enterprise installed. 

Instead of copying the extension directories and files into the C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7 folder and appropriate child folders, the installer copies files to: 

- C:\VSPath2017\ 
- C:\Common7 
- C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7 - This is the 2019 folder! And the toolbar then is available in 2019! 

If I select to also install MySql for Visual Studio into VS 2013, VS 2015, and VS 2017 Pro, the installer installs to these folders as well: 

- C:\VSPath2013 
- C:\VSPath2015 
- C:\VSPath2017Pro 

How to repeat:
Perform an installation of MySQL for Visual Studio to Visual Studio 2017 Enterprise on Windows 10. Verify the extension is not available in Visual Studio. Observe file locations in root of system drive. 

Suggested fix:
Fix the environment variables that are set and utilized during the installation.
[16 Aug 2019 19:51] Anthony Cary
Installer log file

Attachment: MySQLInstallerVisualStudioInstallLog.txt (text/plain), 37.84 KiB.

[22 Aug 2019 8:07] MySQL Verification Team
Thank you for the bug report. Developer was able to verify this bug partially (folder created at root) however have not able to reproduce the part where the installation files are being deployed to the install location of VS2019 instead of VS2017. Can you provide more details on what actions led to this behavior? This behavior seems to be caused by running the MSI multiple times and/or performing a customized installation. Also, it is also likely that the environment has gone through multiple installations of Visual Studio causing the MSI to incorrectly determine the registry entries for Visual Studio.
[22 Aug 2019 22:44] Anthony Cary
There have not been multiple installs of Visual Studio, I can confirm that. This is a recently imaged workstation, with very recent installs of both Visual Studio Enterprise 2017 and Visual Studio Enterprise 2019.

The MSI installer was run multiple times, as after each run, it seemed that it had failed silently. The extension was not available in Visual Studio 2017 after the first install, nor after several more, but the installer didn't report any error. It was only by chance that the extension was seen in Visual Studio 2019 when it was run. Regardless, that it would do that after multiple runs also seems to be an issue that would need fixing.
[30 Aug 2019 15:38] Jose Ramirez Ruiz
Multiple issues were observed when working on this issue.

Issue #1: Executing the MSI after the initial installation allowed users to
select installation of MySQL for Visual Studio on versions of Visual Studio
that are not actually installed in the computer, this resulted in the
installation path being incorrectly set and in the deployment of files to
wrong locations (sometimes to the root drive).

Issue #2: Actions for all supported versions of Visual Studio were being
executed even when the user did not select the product to be installed, this
caused a temporary file to be created in the Extensions folder and created a
folder structure that shouldn't be created.

Issue #3: It was found that the code that identified if VS2017 is installed
only validated the flavors (Community, Enterprise, Professional) but not the
version number (15). Now that Visual Studio 2019 (which has a version number
of 16) is out, the querying of installed VS versions returns entries for both VS2017 and VS2019 and sets the installation path based on the first flavor matching installation. Depending on how the user performed the installations of VS it is possible that VS2019 comes first on the list, allowing for the reported behavior of deploying files to VS2019 instead of VS2017. This third issue is already being fixed as part of a different feature.

Thanks.
[19 Sep 2019 15:45] Christine Cole
Posted by developer:
 
Fixed as of the upcoming MySQL for Visual Studio 1.2.9 release, and here's the changelog entry:

Several installation errors caused the wrong version or edition of Visual
Studio to be identified, which then resulted in the deployment of MySQL
for Visual Studio files to the wrong folder or to a file structure that
represented multiple versions Visual Studio that were neither selected nor
installed on the host computer.

Thank you for the bug report.