Pregunta

Tengo una pregunta muy similar a éste pero la respuesta no no funciona para mí.

Software estoy manteniendo la configuración para depende de VC ++ 2008 (SP1, precisamente), por lo tanto tengo que encontrar una solución para instalar Vcredist si no lo ha instalado. Yo entiendo la forma correcta sería construir msi con módulos de combinación, pero no es en mis manos.

La respuesta de la pregunta duplicado Me refiero a (la aceptada uno) no funciona para mí porque cada versión pequeña (por ejemplo 9.0.30729.01 vs 9.0.30729.17) tiene GUID adecuados, que no soy capaz de adivinar o predecir para futuras versiones. Por otra parte, creo que esto no detectaría Estudios Visuales y por lo tanto innecesariamente instalar el paquete Vcredist cuando ya es en una máquina de desarrolladores. No quiero a nadie con este fallo, luego, no alguien que ya tiene una DevStudio instalado.

Ahora otra respuesta dice que debería mirar en la carpeta como WinSxS-$WINDIR\WinSxS\x86_Microsoft.VC80.CRT_ pero esto no lo hace (todavía) me ayudará a entender SP1, o hay algo que me falta en este momento? ¿Hay una mesa en algún lugar con el de un cierto número de versión secundaria interna y números de versión "externos", por lo que podría implicar?

No puedo creer que no hay nada proporcionado por Microsoft para este escenario, pero buscando la interwebs desde hace ya demasiado tiempo ahora me lleva de nuevo a buen ol' SO:)

¿Fue útil?

Solución

Usted podría tomar el método recomendado para la instalación de DirectX: Siempre ejecute el redistribuible. Puesto que es necesario y ya estás envío que no hay daño en el funcionamiento incluso si ya está instalado.

Otros consejos

Para Visual Studio C ++ 2010, las cosas se pusieron un poco más fácil .

  

A diferencia de C ++ 2005 y 2008 se pueden distribuir paquetes visuales, hay claves de registro que se pueden utilizar para detectar la presencia del Visual C ++ 2010 Redistributable Package.

     

C ++ 2010 valores del registro de detección paquete redistribuible de Visual

     

Visual C ++ 2010 Redistributable Package (x86)

     

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ VisualStudio \ 10.0 \ VC \ Vcredist \ x86]   Instalado = 1 (REG_DWORD)

     

Visual C ++ 2010 Redistributable Package (x64)

     

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ VisualStudio \ 10.0 \ VC \ Vcredist \ x64]   Instalado = 1 (REG_DWORD)

     

Visual C ++ 2010 Redistributable Package (IA64)

     

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ VisualStudio \ 10.0 \ VC \ Vcredist \ IA64]   Instalado = 1 (REG_DWORD)

Nota: : Usted tendrá que comprobar bajo Wow6432Node en un sistema operativo de 64 bits. (HKLM \ Software \ Wow6432Node \ Microsoft ....)

Si te gusta la versión anterior, aquí están los GUID

C ++ 2010 redistribuible códigos de productos paquete plásticas

  • 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 Package (IA64) - {C1A35166-4301-38E9-BA67-02823AD72A1B}

Visual C ++ códigos de producto paquete redistribuible 2010 SP1

  • 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 Package (IA64) - {88C73C1C-2DE5-3B01-AFB8-B46EF4AB41CD}

Parece que hay otra solución propuesta por un Microsoft Developer, utilizando MsiQueryProductState API , por desgracia también depender de los GUID .

Actualizar : El código se puso en marcha ayer y parece estar funcionando bien. Aquí es lo que se hace beeing: Se comprueba el GUID última conocida a-me-Y instalarse a dónde-que-se-supone-a-la path². Si los dos falla, que está instalado. Esto parece funcionar bien.

Además, se instala con los argumentos de línea de comandos "/ qb", que significa "sin supervisión, pero no invisibles". Ver esta otra entrada del blog sobre esos parametros.

Fwiw, GUID para Microsoft Visual C ++ 2008 / VC90 SP1 redistribuible - 9.0.30729 x 86

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

² El camino: $WINDIR\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729*

un proyecto de Visual C ++ en Github para verificar los archivos DLL redistribuible VC ++ específicamente y hecho disponibles bajo la licencia Apache 2.0.

Tiene tres métodos diferentes para la comprobación de la disponibilidad de VC ++ 9 y VC ++ 10 tiempos de ejecución:

  1. comprueba los APIs MsiQueryProductState;
  2. inspeccionar el contenido de la carpeta WinSxS para hacer coincidir los directorios del producto; y
  3. Comprueba el directorio de trabajo actual para las versiones locales de la VC ++ 9 y VC ++ 10 tiempos de ejecución (e inspecciona su contenido.)

He aquí una muestra de lo que el uso de lo que realmente se ve así:

 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;

CRT-detector Proyecto bajo Apache 2.0, así que siéntase libre de usarlo en sus propias aplicaciones.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top