We have a GUI app that is built on both Linux and Windows, so we do not develop/build inside Visual Studios as a project/solution. We do compile with Visual Studios but we use cygwin/command line to do it.
I am trying to deploy an end-user application. For the Windows version, I am using InnoSetup to create an installer exe (Linux version is just a zip file).
InnoSetup works very well for the majority of what I need to do, but I ran into an issue when upgrading my platform from VC10 to VC11.
With VC10, my [Run] section looked like this for installing the vcredist_x64.exe:
[Run]
Filename: {app}\Redist\vcredist_x64.exe; Parameters: "/q:a /c:""VCREDI~2.EXE /q:a /c:"""" /i vcredist.msi /qb!"""" "" "
This, though annoying in that it always installed and required input, worked.
But in switching to VC11:
[Run]
Filename: {app}\Redist\vcredist_x64.exe; Parameters: "/q:a /c:""VCREDI~2.EXE /q:a /c:"""" /i vcredist.msi /qb!"""" "" "; StatusMsg: Installing 2012 RunTime Libraries...;
I have a strange thing happen - when my installer gets to this point, it continuously launches vcredist_x64.exe. The panel hangs, I go to the control panel and there are many, many instances. Killing the setup will bring down the original panel,
but not kill all the vcredist instances, I have to reboot. After reboot I can see in Program and Features that none of the vcredists launched actually installed.
Now if I just double click vcredist_x64.exe it works just fine, and it correctly appears in Programs and Features.
So I started searching for solutions to this issue, and came across these articles:
http://blogs.msdn.com/b/vcblog/archive/2007/10/12/how-to-redistribute-the-visual-c-libraries-with-your-application.aspx
https://msdn.microsoft.com/en-us/library/ms235290.aspx
The first suggests you should never use vcredist (although written in 2007), the second suggests you should default to using vcredist, and only use merge modules for special situations.
I will admit my first hope/desire is to just get vcredist to work correctly with InnoSetup:
- install only if needed
- install quietly in the background or just with a status bar
but I really need to solve this issue, so I'm willing to switch to merge modules if that's the way I should go.
Has anyone else ran into this problem? Any suggestions?
Thanks,
Heather