Wie zu erkennen, ob ich VCRedist installieren?
-
06-09-2019 - |
Lösung
Sie können die empfohlene Ansatz directx für die Installation: immer die verteilbare laufen. Da es erforderlich ist und der Versand erfolgen du es schon es gibt keinen Schaden im Inneren läuft, auch wenn es bereits installiert ist.
Andere Tipps
Für Visual Studio C ++ 2010 bekam die Dinge ein wenig einfacher .
Im Gegensatz zu den Visual C ++ 2005 und 2008 verteilbaren Pakete gibt es Registrierungsschlüssel, die verwendet werden können, um das Vorhandensein des Visual C ++ 2010 Redistributable zu erkennen.
Visual C ++ 2010 Redistributable Erkennungsregistrierungswerte
Visual C ++ 2010 Redistributable Package (x86)
[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Visualstudio \ 10.0 \ VC \ VCRedist \ x86] Installierte = 1 (REG_DWORD)
Visual C ++ 2010 Redistributable Package (x64)
[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Visualstudio \ 10.0 \ VC \ VCRedist \ x64] Installierte = 1 (REG_DWORD)
Visual C ++ 2010 Redistributable (ia64)
[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Visualstudio \ 10.0 \ VC \ VCRedist \ ia64] Installierte = 1 (REG_DWORD)
Hinweis : Sie müssen unter Wow6432Node auf einem 64-Bit-Betriebssystem überprüfen. (HKLM \ Software \ Wow6432Node \ Microsoft ....)
Wenn Sie die ältere Version mögen, hier sind die GUIDs
Visual C ++ 2010 Redistributable Produktcodes
- Visual C ++ 2010 Redistributable Package (x86) - {196BB40D-1578-3D01-B289-BEFC77A11A1E}
- Visual C ++ 2010 Redistributable Package (x64) - {DA5E371C-6333-3D8A-93A4-6FD5B20BCC6E}
- Visual C ++ 2010 Redistributable (ia64) - {C1A35166-4301-38E9-BA67-02823AD72A1B}
Visual C ++ 2010 SP1 Redistributable Produktcodes
- Visual C ++ 2010 SP1 Redistributable Package (x86) - {F0C3E5D1-1ADE-321E-8167-68EF0DE699A5}
- Visual C ++ 2010 SP1 Redistributable Package (x64) - {1D8E6291-B0D5-35EC-8441-6616F567A0F7}
- Visual C ++ 2010 SP1 Redistributable (ia64) - {88C73C1C-2DE5-3B01-AFB8-B46EF4AB41CD}
sieht aus wie es eine andere Lösung Vorschlag ein Microsoft-Entwickler unter Verwendung von MsiQueryProductState API leider auch auf der GUIDs unter Berufung .
Update : Der Code Live gestern ging und scheint gut zu funktionieren. Hier ist das, was getan wird gerade: Es wird geprüft, für die neueste bekannt-to-me-GUID und die path² to-wo-es-ist-soll-zu-sein-installiert. Wenn beide fehlschlägt, wird es installiert. Dies scheint gut zu funktionieren.
Darüber hinaus ist es mit den Befehlszeilenargumenten „/ qb“ installiert, die „unbeaufsichtigt aber nicht unsichtbar“ bedeutet. Siehe dieser anderen Blog-Post über diese params.
FWIW, GUIDs für Microsoft Visual C ++ 2008 / VC90 SP1 Redistributable - x86 9.0.30729
- 64bit 30.729,17: 8220EEFE-38CD-377E-8595-13398D740ACE
- 32bit 30.729,17: 9A25302D-30C0-39D9-BD6F-21E6EC160475
- 32bit 30.729,01: 6AFCA4E1-9B78-3640-8F72-A7BF33448200
² Der Weg:
$WINDIR\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729*
I Open-Source , die für ++ verteilbare DLLs VC prüft speziell und machte sie unter der Apache-2.0-Lizenz zur Verfügung.
Es verfügt über drei verschiedene Methoden zur Überprüfung der Verfügbarkeit von VC ++ 9 und VC ++ 10 Runtimes:
- Prüft die MsiQueryProductState APIs;
- Überprüfen Sie den Inhalt des Ordners WinSxS für Produktverzeichnisse übereinstimmt; und
- Prüft das aktuelle Arbeitsverzeichnis für alle lokalen Versionen der VC ++ 9 und VC ++ 10 Runtimes (und überprüft dessen Inhalt.)
Hier ist ein Beispiel, was mit es tatsächlich aussieht:
wcout << _T("Checking for the availability of VC++ runtimes..") << endl;
wcout << _T("----------- Visual C++ 2008 (VC++9) -----------") << endl;
wcout << _T("Visual C++ 2008 (x86) ? ") << (IsVC2008Installed_x86() ? _T("true") : _T("false")) << endl;
wcout << _T("Visual C++ 2008 (x64) ? ") << (IsVC2008Installed_x64() ? _T("true") : _T("false")) << endl;
wcout << _T("Visual C++ 2008 SP1 (x86) ? ") << (IsVC2008SP1Installed_x86() ? _T("true") : _T("false")) << endl;
wcout << _T("Visual C++ 2008 SP1 (x64) ? ") << (IsVC2008SP1Installed_x64() ? _T("true") : _T("false")) << endl;
I lizenziert die crt-Detektor Projekt unter Apache 2,0, so fühlen sich frei, es in Ihren eigenen Anwendungen zu nutzen.