Problem Installing C++ 2005 Redistributable (x86)
Posted 14 January 2011 - 14:06
In my project i marked "Microsoft Visual C++ SP1 Redistributable Package (x86)" in Section "Redistrubutables".
When executing the Setup there allways comes a Message saying that the installation of the Redistributable "probably did not work" (or so).
Afterwards the redistributable is properly installed and working.
Can someone tell me how i cann suppress this strange message ?
Posted 14 January 2011 - 16:25
It checks this registry key:
Does it exist after the prerequisite installed?
Is the prerequisite re-offered when you run the setup (or another test setup with the same prerequisite) again?
Posted 16 January 2011 - 09:45
thanks for your quick answer.
I used 2005 version of the package, exactly "Microsoft Visual C++ 2005 SP1 Redistributable Package (x86)".
Sorry i did not type it correctly.
After the setup my software runs perfectly, so the package must have been installed.
The message saying that "Die Installation von Microsoft Visual C++ 2005 Sp1 Redistributable Package (x86) ist anscheinend fehlgeschlagen. Möchten Sie mit der Installation fortfahren?" is definitely wrong.
I cound tell my customers just to ignore this message.
But i think this ist not a good installation experience.
So i just want to switch off this message.
When starting the setup a second time, i am asked to install the package again.
So i think your are right that after the installation of the package the registry key indicating that the package ist installed is missing.
I think that this registry key must be set automatically.
Or do i have to take care of this?
Thanks for your help in advance.
Posted 17 January 2011 - 11:22
It should get created automatically, but it looks like it doesn't. You need to find out why this key isn't being created, or if it's created elsewhere or some other key is created. (In my registry this key exists)
The instalaltion process is as follows:
InstallShield checks the key.
If it doesn't exist it runs the prerequisite installer.
It checks the key again. If it still doesn't exist it reports that the prereq install failed.
Posted 18 January 2011 - 13:37
the registry key you mentioned does not exist after running the setup.
So this is definitely the problem.
But what counld be possible reasons for this?
I tested my setup under XP(prof. SP3) and Win7(prof. 32 bit).
The registry key is missing on both machines.
On the Win7 machine i also tried "als Administrator ausführen".
The problem remains.
I dont see a possibility to change something in my setup.
I can just mark the option for installing the C++ redistributable.
There are no details which cound be changed.
Do you have an idea what i can do now?
Posted 18 January 2011 - 17:18
C:\Program Files\InstallShield\2011\SetupPrerequisites\VC 2005 SP1) on a test machine?
Posted 19 January 2011 - 08:12
after running vcredist_x86.exe from the place you mentioned there is a new key F942F94A19C0F79468FD2B85E5E8677B in the registry.
For my setup i have to use a different version of vcredist_x86.exe.
After running this version there ist a key 3e43b73803c7c394f8a6b2f0402e19c2 in the registry.
Both are different from the key you mentioned (B25099274A207264182F8181ADD555D0).
When i look in my installshield and use "show details" for the c++ redistributable it says that a key B25099274A207264182F8181ADD555D0 is used as a condition.
I am confused.
Is there another way to install vcredist_x86.exe in my setup ?
I mean not to mark this point in the section redistributables.
I tried to copy this file to the new machine as a part of my setup and then start it in the section "cstom actions / after file transfer". But this way i get an error saying that a setup cannot run within a setup.
Posted 19 January 2011 - 10:19
Can you extract the contents from vcredist_x86.exe using 7zip or a similar tool, then extract the contents from VCREDI~3.EXE to get vcredist.msi. Now open this msi either with InstEd or Orca, or with InstallShield in Direct Edit mode. In the Property table look for ProductCode. It should be:
BTW Windows Installer GUIDs should be all upper case, but I'm not sure if this is related to this problem.
Posted 19 January 2011 - 11:31
i followed your instructions and opened vcredist.msi with insted.
In the version of vcredist_86 which i need to use for my software if found this:
In the version i found here (C:\Program Files\InstallShield\2011\SetupPrerequisites\VC 2005 SP1) i found this:
Posted 20 January 2011 - 08:06
i am not sure if i really understand your idea.
You mean i should edit the file "Microsoft Visual C++ 2005 SP1 Redistributable Package (x86).prq" in the folder "SetupPrerequesites/VC 2005 SP1 redist" ?
Just replace the registry key in the field <conditions> ?
Do i have to make more changes in this file ?
Posted 20 January 2011 - 18:33
However that doesn't expolain why your vcredist is different from mine (and the one that InstallShield expects). So maybe you should make sure you have all the latest updates installed, redownload the prerequisite etc. Maybe you will then have the correct vcredist.
Or replace the vcredist in the InstallShield folder.
In the end, the codes must match.
Posted 21 January 2011 - 09:40
it works !
Thank you very much for your help.
Now my setup works really fine.
There is only one thing which is not perfect.
The C++ redistributable is installed under all versions of windows.
Under windows 7 my software does not need it.
Is it possible to skip it under windows 7 ?
In the properties of the "custom actions" i can open "conditions" and choose the operating systems i want.
But in the "redistributables" there are no conditions.
Posted 24 January 2011 - 18:18
Posted 25 January 2011 - 07:48
So i will have to edit the prq again.
I think this part could be responsible for the operating systems:
<operatingsystemcondition MajorVersion="5" MinorVersion="0" PlatformId="2" CSDVersion=""></operatingsystemcondition>
<operatingsystemcondition MajorVersion="6" MinorVersion="1" PlatformId="2" CSDVersion="" Bits="1" ProductType="1"></operatingsystemcondition>
<operatingsystemcondition MajorVersion="5" MinorVersion="2" PlatformId="2" CSDVersion="" Bits="1" ProductType="2|3"></operatingsystemcondition>
<operatingsystemcondition MajorVersion="6" MinorVersion="0" PlatformId="2" CSDVersion="" Bits="1" ProductType="2|3"></operatingsystemcondition>
<operatingsystemcondition MajorVersion="6" MinorVersion="0" PlatformId="2" CSDVersion="" Bits="1"></operatingsystemcondition>
<operatingsystemcondition MajorVersion="5" MinorVersion="1" PlatformId="2" CSDVersion="" Bits="1" ProductType="1"></operatingsystemcondition>
I looked in the online help but i did not find anything about this.
What changes must i do to skip installation of VC++ redistributable on Win7 machines ?
Posted 06 February 2011 - 09:29
I will try to find it by trial and error.