Hallo zusammen
Für ein mit Installshield 2008 erstelltes Setupprojekt muss u.a. das MS Visual C++ 2005 Redistributable Package installiert sein.
Anscheinend gibt's kein dazu gehörendes Prerequisites für Installshield 2008, darum habe ich ein eigenes erstellt.
Weiss jemand was ich für eine Install condition angeben kann um zu überprüfen ob die Runtime installiert ist oder nicht ?
Danke für eure tipps
Phil_B
This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
MS Visual C++ 2005 Prerequisites
Started by
Phil_b
, Aug 21 2008 16:33
2 replies to this topic
Posted 30 October 2008 - 10:37
Wir packen die im VisualStudio enthaltene vcredist_x86.exe mit auf die Setup-CD und starten sie dann mit LaunchAppAndWait, wenn noetig. Um zu ueberpruefen, ob die Installation noetig ist, haben wir frueher einfach die aktuelle Version der DLLs im System abgefragt, das geht aber inzwischen aufgrund der Systemwiederherstellung-Punkte und/oder Schutzmechanismen von XP nicht mehr so einfach, darum ueberpruefen wir die Version anhand der Installationseintraege von vcredist in der Registry:
CODE |
function CheckMFCRT8() string szKey, szName, szVersion, szDummy; number nType, nSize, nResult, nReg; begin nResult = INSTALL_NOTHING; szKey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\"; szKey = szKey + "{7299052b-02a4-4627-81f2-1818da5d550d}"; szName = "DisplayVersion"; RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE); nReg = RegDBGetKeyValueEx(szKey, szName, nType, szDummy, nSize); RegDBSetDefaultRoot(HKEY_CLASSES_ROOT); if (nReg != 0) then nResult = INSTALL_MFCRT8; else szVersion = "8.0.56336.0"; if (VerCompare(szVersion, szDummy, VERSION) = GREATER_THAN) then nResult = INSTALL_MFCRT8; endif; endif; return nResult; end; |
Der Wert in szVersion bezieht sich dabei auf die VCRedist, die zum VisualStudio 2005 mit SP1 gehoert, ohne SP1 war der Wert "8.0.50727.42". Aber das kriegt man ja durch Nachgucken schnell raus, welche VCRedist man selber installiert.
INSTALL_NOTHING und INSTALL_MFCRT8 sind vordefinierte Werte fuer eine Bitmaske, wir muessen ausser MFCRT8 ggf. noch andere Fremd-Setups ausfuehren. Bei Euch tut's sicher auch ein TRUE/FALSE.
Das ist jetzt zwar nicht der Weg ueber ein selbst erstelltes IS-Prerequiste, damit habe ich mich noch nicht beschaeftigt. Vielleicht koennt Ihr eine entsprechende Ueberpruefung da irgendwo einbauen.
Vermutlich gibt es auch einen huebscheren Weg. Ich weiss auch nicht, ob die GUIDs vom VCRedist-Setup ueber alle Versionen konstant bleiben und was sich an solchen Registry-Pfaden noch aendern wird. Unter XP und Vista funktioniert es so jedenfalls erst mal. War uebrigens ziemlich nervig, das rauszubekommen - Dinge, die ich noch nie ueber mein Betriebssystem wissen wollte...
Gruss
Rita