Oogst
24th June 2011 10:40 UTC
vcredist sometimes hangs or loops on Windows 7
I have made an installer using NSIS and it turns out that for some Windows 7 users (I estimate about 1% of the total) the vcredist installation hangs or even enters an infinite loop where it starts over and over again. Why is this happening and how can I fix this?
The vcredist_x86.exe I am installing is from Visual Studio 2005. It also seems to somehow happen with one of my own programs that I run after that. This is the relevant part of the installer:
ExecWait "VCRedist\vcredist_x86.exe /Q"
ExecWait "Proun.exe CONNECTIONTEST"
I have not seen this happening myself, but several users have reported this to me on my support forum. Does anyone know how to fix this?
Thanks in advance!
Anders
24th June 2011 16:33 UTC
I'm not saying that it is going to fix the problem, but you should execute with full path and correct quotes:
ExecWait '"$pluginsdir\VCRedist\vcredist_x86.exe" /Q'
Oogst
24th June 2011 19:58 UTC
I can change that, but I strongly doubt it will help, because it is running the file, and even recognizing the /Q, since it runs automatically. I guess this couldn't cause repeated runs of the ExecWait, right?
demiller9
24th June 2011 23:05 UTC
In my installer I embed the vc redistributable, but I have extracted it beforehand and call it like this:
SetOutPath $PLUGINSDIR
File "${LIB}\vc_red.msi"
File "${LIB}\vc_red.cab"
DetailPrint "Execute: VCRedist_x86.exe"
ExecWait '"$SYSDIR\msiexec.exe" /i $PLUGINSDIR\vc_red.msi /qn /norestart'
Use the -x switch to extract the contents of VCRedist_x86 without installing it.
Don
Edit: specify the switch that extracts the contents without installing the package.
msroboto
24th June 2011 23:07 UTC
I doubt it will make much difference but this is what I use to install vcredist.
nsExec::ExecToStack "vcredist_x86.exe /Q"
MSG
25th June 2011 11:12 UTC
Are you sure the problem also occurs for your proun.exe? You should ask (one of) the affected users to run a quick test installer that only tries to install vcredist. Add some messageboxes with debug info if applicable. You need to isolate the cause of the problem, so start with the simplest and work your way up.
If it's only vcredist that's looping, you might want to create a minimum installer that shows the problem and pass that to microsoft support.
T.Slappy
25th June 2011 12:49 UTC
I suppose this error is somehow related to 64bit VC Redist because on X86 installation is much smoother...
BTW: fix this line:
ExecWait "Proun.exe CONNECTIONTEST"
This command launches PROUN.exe [the installer!!!] not the game app with name "Proun.exe" which is really annoying because everyone installs the game twice!