InstallShield VC++ 2019 Prerequisite restart the machine after the prerequisite installation

InstallShield VC++ 2019 Prerequisite restart the machine after the prerequisite installation

Summary

 

 InstallShield VC++ 2019 prerequisite restart the machine after the VC++ 2019 prerequisite installation, especially when installs on a machine installed with VC++ 2017 redistributable. However, VC++ 2019 redistributable from the Microsoft is not initiating the restart.

Synopsis

This information applies to InstallShield 2020 R3 version. As the hotfix installer from the below download link, only installs on InstallShield 2020 R3.

Hotfix installer applies to InstallShield 2020R3 project types configured with InstallShield VC++ 2019 prerequisite:

  • Basic MSI
  • InstallScript MSI
  • Installscript 

Cause

 InstallShield uses several methods to determine if a target machine should be restarted after running the InstallShield prerequisite. One of them is by counting the entries in the "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\PendingFileRenameOperations" registry key. The registry keys are counted 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.

Microsoft VC++ 2019 redistributable is updating the "PendingFileRenameOperations" registry key during the installation, especially when Microsoft VC++ 2017 redistributable is installed on the target machine. Hence, InstallShield prerequisite is initiating the system restart because of the mismatch in the  number of entries for "PendingFileRenameOperations" registry key, before and after the VC++ 2019 redistributable installation. However, Microsoft VC++ 2019 redistributable is ignoring the "PendingFileRenameOperations" registry key changes, as all the new entries are for the temporary files created in the TEMP folder during the installation. 

Solution:

Modified the InstallShield VC++ 2019 prerequisite and InstallShield 2020 R3 prerequisite engine to ignore the "PendingFileRenameOperations" registry key changes for the temporary files created in the TEMP folder during the VC++ 2019 prerequisite installation.  

InstallShield 2020 R3 hotfix installer is available for download from <<here>>.

InstallShield 2020 R3 hotfix installs on InstallShield 2020 R3 ( Premier, Professional and Express Editions) and InstallShield 2020 R3 StandAlone Build.

Labels (1)
Was this article helpful? Yes No
No ratings
Comments

Thanks for this! I had no problem installing it on my workstation, but when I tried installing it in my standalone build built in docker I'm getting error 2147753984.

In the Dockerfile I'm downloading the hotfix as "C:\InstallShield2020R3HotfixA.exe", then running:

RUN C:\InstallShield2020R3HotfixA.exe /s /v"/qn"
 
I also tried "/qn SABCONTAINER=1" and "INSTALLLEVEL=101 SABCONTAINER=1 /qn" but got the same error in all cases.

Hi @Azmaeus,

Thank you for your post.

You could try downloading the Docker image with a preinstalled copy of the Standalone Build via the documentation at this link:

https://community.flexera.com/t5/InstallShield-Knowledge-Base/InstallShield-StandAlone-Build-with-Docker/ta-p/127060 

Please give that a try. Does that work for you?

Please let us know if you have any questions or concerns. Thank you for your patience and cooperation.

@Revenera_Ian thanks for the suggestion. I looked at the latest docker image,  flexerasoftware/installshield:sab2020r3 and I don't see Hotfix A being applied to it. I created a simple dockerfile which uses that image as the base, and only adds and runs the hotfix a installer. I started it building at least 10 minutes ago and it's still running. No error, but no success either.

Dockerfile:

# Base Image
FROM flexerasoftware/installshield:sab2020r3
 
# Change to Root Dir
WORKDIR /
 
# Copy hotfix installer to root
ADD InstallShield2020R3HotfixA.exe /
 
# InstallShield 2020 R3 Hotfix A installation
RUN InstallShield2020R3HotfixA.exe

 

Output (so-far):

C:\Users\azmaeus> docker build .\IS_SAB_HotfixA\
Sending build context to Docker daemon 8.127MB
Step 1/4 : FROM flexerasoftware/installshield:sab2020r3
---> fd7bd04439cd
Step 2/4 : WORKDIR /
---> Running in 4510ce11fba5
Removing intermediate container 4510ce11fba5
---> e234d539c9d8
Step 3/4 : ADD InstallShield2020R3HotfixA.exe /
---> af5426f1ff62
Step 4/4 : RUN InstallShield2020R3HotfixA.exe
---> Running in 811f4a2a8c0b

I cancelled and tried with -S -v"/qn" and got the error again with using the Revenera 2020 R3 SAB as the base.

Hi,

I'm getting the same issue with Install Shield 2021 R2. We were thinking it would be fixed in that version - is it not the case?

Thanks.

Peter

 

Edit - now that I try 2020R3 which mentions the fix in the release notice, I'm sure the fix isn't in 2021R2 as the fix certainly works for me in 2020R3.

@psmithson : if you are facing VC2019 reboot issue in IS2021 or IS2021R2, 

Hope you are trying with default VC++2019 prq shipped with IS2021(Not copied from IS2020 prq to IS2021)

Could you please open a case with our Support Team about this issue either by email at support@revenera.com, or dialing support number provided in below link

https://community.flexera.com/t5/Support-Information/Support-Contacts/ta-p/94720

 

Has this been fixed in IS 2020 R3 SP1?  We are using IS 2020 R3 SP1 and still have this restart required issue and I was not able to install the Hotfix (probably because of the SP1?):

"InstallShield 2020 R3 English Edition must be installed to run this update. The setup will exit now."

Thanks.

I suggest you to create a support case, the support team will be able to check the prq you are using and share latest prq if you are using an old issue prq file.

As a quick test, please check the VC++2019 prq by editing it in notepad or notepad++ and check below line exists or not, if this line doesn't have exact same value, then you are using older or issue prq file.

<behavior IgnoreTmpRename="1" Reboot="2"/>

 

 

@varul my .prq file does have that behavior. I will open a support case; thanks!

InstallShield clearly has a problem with later VC runtime installers.

The VC runtime installers return exit code 0 properly, but due to the convoluted handling of various legacy prerequisite installers, InstallShield additionally looks at pending file operations.

Flexera provides a .prq file with a workaround, but it only works halfway and stumbles over the same problem if the runtime-dependent program is currently running.

Let's see when Flexera plans to solve this problem....

@ch_eng2  and @klaus_triendl - 2020 R3 *with SP1* fixes it for me. The fix is mentioned in the release notice for SP1 - < I keep getting an error when I try to post the link to it! >

I'm still waiting for someone to tell me if it's in 2021 R2 - I know I was told to raise a ticket but in the time it took to say that, why not just answer the question? I have a feeling I got mixed up and it did actually work in 2021R2.  It's academic now - we went for 2020 R3 with SP1. We no longer get a re-boot when using recent redistributables. No workaround or hacks required.

Hi @psmithson,

Thank you for your post.

Please accept our apologies for the confusion and any frustration.

If this issue does not occur with InstallShield 2020 R3 SP1 then I would expect that this issue would not occur with InstallShield 2021 R2. If that's not the case then a ticket would need to be raised so we can track our investigation. We understand that you just want an answer but we need a ticket to track the issue, troubleshooting, etc. I'm unclear on whether you've determined that this issue occurs with InstallShield 2020 R3 SP1 and InstallShield 2021 R2 or not. This would first need to be determined to effectively troubleshoot this issue.

Please let us know if you have any questions or concerns. Thanks!

Version history
Last update:
‎May 17, 2021 06:35 AM
Updated by:
Contributors