Bug #91542 MySQL 8.0 installer does not detect Visual C++ redistributable already installed
Submitted: 3 Jul 2018 21:58 Modified: 25 Jul 2018 22:32
Reporter: Andreas Ravnestad Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL for Windows: Installer Severity:S3 (Non-critical)
Version:8.0.11 OS:Windows
Assigned to: CPU Architecture:Other (x64)

[3 Jul 2018 21:58] Andreas Ravnestad
Description:
Installer fails during "Check Requirements" step. It is searching for VC++ 2015 redistributable, but when I run the VC++ 2015 redist installer I get an error message from the redist installer saying that another version of this product is already installed. It seems that VC++ 2017 redist (which is installed) is compatible with VC++ 2015 redist, however the MySQL installer fails to identify this, and when the VC++ 2015 redist installer fails, I am thus unable to install MySQL Server.

If anything is unclear about this description, please refer to this screenshot: https://i.imgur.com/xlqvCXp.png

How to repeat:
See description.

Suggested fix:
Detect VC++ 2017 redist is already installed during the MySQL Server install "Check Requirements" step.
[4 Jul 2018 9:03] Chiranjeevi Battula
Hello  Andreas Ravnestad,

Thank you for the bug report.
I could not repeat the issue at our end using with MySQL web/Installer 1.4.26.0 version on Windows 10.
If you can provide more information, feel free to add it to this bug and change the status back to 'Open'.

Thank you for your interest in MySQL.

Thanks,
Chiranjeevi.
[4 Jul 2018 9:03] Chiranjeevi Battula
Screenshot

Attachment: Bug_91542.PNG (image/png, text), 107.79 KiB.

[6 Jul 2018 12:30] Chiranjeevi Battula
http://bugs.mysql.com/bug.php?id=91563 marked as duplicate of this one.
[9 Jul 2018 18:08] Javier Treviño
I changed the status of the bug, this error can be reproduced when having a VC++ 2015 runtime installed and then installing the latest VC++ 2017 runtime.

There is a bug in Microsoft's  VC++ 2017 runtime installer where the registry keys created by the VC++ 2015 runtime are deleted and none are created for the 2107 version. The workaround Microsofts suggests is to repair the installation of the VC++ 2017 runtime:

https://developercommunity.visualstudio.com/content/problem/111499/how-to-detect-if-visual...

Both VC++ 2015 and VC++ 2017 runtimes are currently binary compatible, meaning any of the 2 can be used with applications requiring VC++ 2015.

Although this is not a bug in the way we detect the VC++ runtime and although Microsoft will very likely fix this in the next VC++ runtime release, we are analyzing the situation to see if we can detect prerequisite in a smarter way in MySQL Installer.
[13 Jul 2018 23:45] Javier Treviño
We are enhancing the VC++ 2015 runtime detection in MySQL Installer to workaround the current bug in the VC++ 2015 runtime (see my previous comment where I provide a link with the bug information).

The fix will be available in the next version of MySQL Installer.
In the meantime the workaround suggested by Microsoft can be applied.
[13 Jul 2018 23:47] Javier Treviño
Posted by developer:
 
The prerequisite detection for VC++ 2015 runtime was enhanced to workaround the current bug in the VC++ 2015 runtime installer.
MySQL Installer will try to check for the installation registry key as before, but if the registry key is not found it will do the check using the VC++ 2015 runtime's upgrade code.
[14 Jul 2018 15:20] Andreas Ravnestad
Thanks, can confirm the workaround worked for me.
[25 Jul 2018 21:05] Javier Treviño
Posted by developer:
 
This fix will be included with MySQL Server 8.0.12 bundles published in the downloads section of the MySQL webpage.
Since the fix is in the products catalog metadata, alternatively, an update to the products catalog (after 8.0.12 releases are published) will make MySQL Installer to apply the fix even if the MySQL Installer version is not updated.
[25 Jul 2018 22:32] Christine Cole
Posted by developer:
 
Fixed as of the upcoming MySQL Installer 1.4.26 release, and here's the changelog entry:

Prerequisite detection was enhanced to work around a bug that may fail to
detect the Microsoft Visual C++ 2015 Redistributable if both it and the
Microsoft Visual C++ 2017 Redistributable are installed. MySQL Installer now checks for 
the installation registry key as before, but if the registry key is not found, it  performs the check 
again using the Microsoft Visual C++ 2015 Redistributable upgrade code.

Thank you for the bug report.