28 votes

Comment détecter VC ++ 2008 redistribuable?

Est-il un paramètre de Registre que je peux considérer pour déterminer si oui ou non le Visual C++ redistributable est installé, que ce soit autonome ou en tant que partie de Visual Studio 2008? Je sais que je pourrais lancer le VC++ 2008 redistributable installer et de le laisser gérer la détection, mais il serait plus propre si je peux vérifier pour elle et pas la peine de lancer le programme d'installation si le redistribuable est déjà sur le système.

C'est pas trop grave si il n'y a pas de réglage pour la recherche, comme c'est juste pour l'avant-installateurs que nous avons pour la nouvelle version de notre logiciel. Nous n'en aurez pas besoin pour le nouveau Windows Installer installateurs que nous travaillons sur qui va remplacer l'ancienne technologie et l'utilisation de la fusion des modules.

17voto

user346856 Points 121

Je ne pense pas qu'aucune de ces solution peut vous aider lors de votre utilisation de différents OS ! Pour ex, MsiQueryProductState sera toujours renvoyée -1 à l'aide de Vista VC8.0

alors que -1 pour la VC8.0/8.0 SP1/9.0 avec Windows 7 ! Si le GUID solution fournis par microsoft, ne fonctionne pas dans tous les cas

donc je suppose que je suis forcé de coincé avec le dossier %windir%\winsxs approche et de recherche pour

  • x86_Microsoft.VC80.CRT*
  • x86_Microsoft.VC90.CRT*

Pour ceux qui sont à la recherche pour tous les Guid, Voici une liste que j'ai créé:

Visual C++ 2005 fichiers d'exécution

* VC 8.0 (x86) - {A49F249F-0C91-497F-86DF-B2585E8E76B7}
* VC 8.0 (x64) - {6E8E85E8-CE4B-4FF5-91F7-04999C9FAE6A}
* VC 8.0 (ia64) - {03ED71EA-F531-4927-AABD-1C31BCE8E187}

Visual C++ 2005 SP1 runtime files

* VC 8.0 SP1 (x86) - {7299052B-02A4-4627-81F2-1818DA5D550D}
* VC 8.0 SP1 (x64) - {071C9B48-7C32-4621-A0AC-3F809523288F}
* VC 8.0 SP1 (ia64) - {0F8FB34E-675E-42ED-850B-29D98C2ECE08}

Visual C++ 2005 SP1 de Sécurité ATL mise à Jour de fichiers d'exécution

* VC 8.0 SP1 ATL Patch (x86) - {837B34E3-7C30-493C-8F6A-2B0F04E2912C}
* VC 8.0 SP1 ATL Patch (x64) - {6CE5BAE9-D3CA-4B99-891A-1DC6C118A5FC}
* VC 8.0 SP1 ATL Patch (ia64) - {85025851-A784-46D8-950D-05CB3CA43A13}

Runtime Visual C++ 2008 fichiers

* VC 9.0 (x86) - {FF66E9F6-83E7-3A3E-AF14-8DE9A809A6A4}
* VC 9.0 (x64) - {350AA351-21FA-3270-8B7A-835434E766AD}
* VC 9.0 (ia64) - {2B547B43-DB50-3139-9EBE-37D419E0F5FA} 

Visual C++ 2008 SP1 runtime files

* VC 9.0 SP1 (x86) - {9A25302D-30C0-39D9-BD6F-21E6EC160475}
* VC 9.0 SP1 (x64) - {8220EEFE-38CD-377E-8595-13398D740ACE}
* VC 9.0 SP1 (ia64) - {5827ECE1-AEB0-328E-B813-6FC68622C1F9}

Visual C++ 2008 SP1 de Sécurité ATL mise à Jour de fichiers d'exécution

* VC 9.0 SP1 ATL (x86) - {1F1C2DFC-2D24-3E06-BCB8-725134ADF989}
* VC 9.0 SP1 ATL (x64) - {4B6C7001-C7D6-3710-913E-5BC23FCE91E6}
* VC 9.0 SP1 ATL (ia64) - {977AD349-C2A8-39DD-9273-285C08987C7B}

5voto

kenziu Points 46

Dernier pour VC2005:

Mise à jour de sécurité MFC du package redistribuable Visual C ++ 2005 Service Pack 1

 * VC 8.0 SP1 MFCLOC Patch (x86) - {710F4C1C-CC18-4C49-8CBF-51240C89A1A2}
* VC 8.0 SP1 MFCLOC Patch (x64) - {AD8A2FA1-06E7-4B0D-927D-6E54B3D31028}
* VC 8.0 SP1 MFCLOC Patch (ia64) - {C2F60BDA-462A-4A72-8E4D-CA431A56E9EA}
 

8.0.50727.6195

http://www.microsoft.com/downloads/details.aspx?familyid=AE2E1A40-7B45-4FE9-A20F-2ED2923ACA62

4voto

1800 INFORMATION Points 55907

Rapide et sale:

 if (LoadLibrary(L"msvcrt80.dll")!=NULL)
{
  // it is installed
}
 

Loadlibrary se chargera de rechercher les chemins pour vous.

4voto

lImbus Points 1152

regarde comme il y a une autre solution proposée par Microsoft Developer, à l'aide de MsiQueryProductState API, hélas aussi en s'appuyant sur les Guid.

Mise à jour: Le code est entré hier et semble fonctionner correctement. Voici ce qu'est avoir accompli: Il est vérifié pour la dernière connue à me GUID ET le path2 pour-où-il-est supposé être installé. Si les deux échoue, il est installé. Cela semble bien fonctionner.

En outre, il est installé avec les arguments de ligne de commande "/qb", qui signifie "sans surveillance, mais pas invisible". Voir cet autre billet de blog à propos de ces paramètres.

FWIW, les Guid pour Microsoft Visual C++ 2008 / VC90 SP1 Redistributable - x86 9.0.30729

  • 64bit 30729.17: 8220EEFE-38CD-377E-8595-13398D740ACE
  • 32bit 30729.17: 9A25302D-30C0-39D9-BD6F-21E6EC160475
  • 32bit 30729.01: 6AFCA4E1-9B78-3640-8F72-A7BF33448200

2 Le chemin: $WINDIR\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729*

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X