cancel
Showing results for 
Search instead for 
Did you mean: 
spiderlily
Active participant

Visual C++ 2019 x64 Prerequisite fails when Visual C++ 2017 x64 is installed

Jump to solution

Trying to post this again, because my previous post got marked as spam for some reason?

I'm experiencing the following behavior with my prerequisite, but not when the Visual C++ 2019 installer is run outside of InstallShield.  My colleague and I both experience the following repeatable behavior.

  • When Visual C++ 2017 (x64) redistributables are installed, the InstallShield installer fails after installing Visual C++ 2015-2019 (x64) redistributables.
  • When Visual C++ 2017 (x64) redistributables are not installed, it succeeds through both prerequisites and the main installer.

Since Visual C++ 2015-2019 (x64) replaces the Visual C++ 2017 (x64) redistributables, to reproduce the issue, you must uninstall Visual C++ 2015-2019 (x64), and reinstall Visual C++ 2017 (x64).

I've created a version of the prerequisite that logs the installation of Visual C++, and got the attached logs. Screenshots of my prerequisite configuration are also attached.

If anyone has any idea what is wrong, please help! I'd like this to work, and this installer must be delivered very soon!

0 Kudos
3 Solutions

Accepted Solutions
gogogroundhog
Occasional contributor

Re: Visual C++ 2019 x64 Prerequisite fails when Visual C++ 2017 x64 is installed

Jump to solution

As a workaround, I was able to successfully install by adapting spiderlily's prerequisite as follows:

  • remove /norestart command line flag in 'Application to Run' tab
  • In the 'Behaviour' tab, set 'If the prerequisite appears to need a reboot' to 'Prompt the user only if no reboot is detected, but always reboot the machine and resume on reboot'

On a system that already had VC++ 2017 (or VC++ 2015) merge modules installed, the setup will now install the 2019 prerequisite, then interrupt the setup asking for reboot, and resume and finish the setup after reboot (and user logged in again).

View solution in original post

Flexera Varaprasad
Flexera

Re: Visual C++ 2019 x64 Prerequisite fails when Visual C++ 2017 x64 is installed

Jump to solution

If you would like to handle reboot at the end of the main installation then you can choose either of the below options from the prerequisite behavior tab

  • Note it, fail to resume if the machine is rebooted, and reboot after the installation
  • Ignore it, and fail to resume if machine is rebooted

Below link has more details.

https://helpnet.flexerasoftware.com/installshield23helplib/helplibrary/UIRefPrereqEditor_Behavior.ht...

View solution in original post

0 Kudos
Flexera Varaprasad
Flexera

Re: Visual C++ 2019 x64 Prerequisite fails when Visual C++ 2017 x64 is installed

Jump to solution

Yes, those settings suppose to skip reboot flow and allow main installation to continue. Could you please try and let me know if it works for you?

View solution in original post

0 Kudos
19 Replies
Flexera Varaprasad
Flexera

Re: Visual C++ 2019 x64 Prerequisite fails when Visual C++ 2017 x64 is installed

Jump to solution

This behavior is due to InstallShield setup detecting pending reboot based on PendingFileRenameOperations value (set by microsoft 2019 installer) as documented below.

https://helpnet.flexerasoftware.com/installshield24helplib/helplibrary/SetupPrereqEditorRestart.htm

I think setup will automatically resume post rebooting the machine. You can try setting different option in the prerequisite behavior tab when reboot is detected.

More details are below:

You will see below entries in the log file if you run your setup using "setup.exe /debuglog" command,

9-18-2019[04:37:35 PM]: Creating new process for prerequisite, launching command line C:\InstallShield 2019 Projects\2019x64\Product Configuration 1\Release 1\DiskImages\DISK1\ISSetupPrerequisites\{D169431C-80C2-4463-B5E3-DFAA867EC507}\vc_redist.x64.exe [open] /q
9-18-2019[04:37:39 PM]: Prerequisite process exited with return code 0
9-18-2019[04:37:39 PM]: PrereqEngine: Return Code from EXE: 0
9-18-2019[04:37:39 PM]: PrereqEngine: Reboot required - PendingFileRenameOperations value added
9-18-2019[04:37:39 PM]: PrereqEngine: Reboot Required

Try installing Visual C++ 2015-2019 (x64) installer manually on top of Visual C++ 2017 (x64) installed, and observe PendingFileRenameOperations value under "Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager".  Visual C++ 2015-2019 installer is updating this key value with the names of files to be renamed when the system restarts.

InstallShield setup keeps track of PendingFileRenameOperations key count before and after the InstallShield prerequisite is run. If these numbers are not the same, it is assumed that the file is trying to restart the system and exit the installation.

0 Kudos
spiderlily
Active participant

Re: Visual C++ 2019 x64 Prerequisite fails when Visual C++ 2017 x64 is installed

Jump to solution

Thank you for replying, Varaprasad.  When I run the VC++ redist installer manually, it does not prompt me to reboot.  In previous installers I built with InstallShield, I included earlier versions of the VC++ redist and other redistributables as prerequisites.  They did not crash, but allowed the InstallShield installer to finish, and I added an InstallShield dialog at the end to prompt the user to reboot.   This seemed to correct some runtime issues we experienced.  I can certainly do the same thing here  - prompt for the user to reboot at the end of installation, but currently, the VC++ redist installer breaks out of the InstallShield installer altogether and crashes it before our application is installed.

0 Kudos
spiderlily
Active participant

Re: Visual C++ 2019 x64 Prerequisite fails when Visual C++ 2017 x64 is installed

Jump to solution
One other thing. I suspected that this might be a problem with the VC++ redist installer itself, so I also posted about this problem in the Visual Studio Developer Community. The status "under investigation."
0 Kudos
gogogroundhog
Occasional contributor

Re: Visual C++ 2019 x64 Prerequisite fails when Visual C++ 2017 x64 is installed

Jump to solution

Hi spiderlily,

can you post a link to your problem report in the VS community, please?

We are having exactly the same issue and need a solution for the problem as well.

When does Flexera plan to provide a working (or any, for that case) VC2019 prerequisite for Installshield professional?

0 Kudos
spiderlily
Active participant

Re: Visual C++ 2019 x64 Prerequisite fails when Visual C++ 2017 x64 is installed

Jump to solution

Sure!  I'm sorry you're having this problem too, but it's kinda nice to hear it's not just me!  :)

https://developercommunity.visualstudio.com/content/problem/734287/visual-c-2019-redistributables-cr...

0 Kudos
gogogroundhog
Occasional contributor

Re: Visual C++ 2019 x64 Prerequisite fails when Visual C++ 2017 x64 is installed

Jump to solution

Thanks for the link!

For the record,  we are using Installshield 2019 professional. 

0 Kudos
spiderlily
Active participant

Re: Visual C++ 2019 x64 Prerequisite fails when Visual C++ 2017 x64 is installed

Jump to solution

This problem occurs for me when using InstallShield 2016 Professional.

0 Kudos
Highlighted
gogogroundhog
Occasional contributor

Re: Visual C++ 2019 x64 Prerequisite fails when Visual C++ 2017 x64 is installed

Jump to solution

This problem is still an issue. Microsoft has officially concluded, that the problem belongs to Installshield, see issue reported to Microsoft

 

gogogroundhog
Occasional contributor

Re: Visual C++ 2019 x64 Prerequisite fails when Visual C++ 2017 x64 is installed

Jump to solution

As a workaround, I was able to successfully install by adapting spiderlily's prerequisite as follows:

  • remove /norestart command line flag in 'Application to Run' tab
  • In the 'Behaviour' tab, set 'If the prerequisite appears to need a reboot' to 'Prompt the user only if no reboot is detected, but always reboot the machine and resume on reboot'

On a system that already had VC++ 2017 (or VC++ 2015) merge modules installed, the setup will now install the 2019 prerequisite, then interrupt the setup asking for reboot, and resume and finish the setup after reboot (and user logged in again).

View solution in original post