2012-09-28 45 views
5

Mi programa contiene varios DLL que dependen de MSVCP100.dll y MSVCR100.dll, en Win7 mi programa se ejecuta sin ningún problema, sin embargo, en Win8 no pudo ubicar estos dos DLL. Noté que en Win8 no hay un VCRedist instalado por defecto, así que aparentemente necesito instalar el VCRedist para habilitar mi programa.¿Cómo comprobar si necesito instalar VCRedist?

La pregunta es, ¿cómo puedo verificar si el VCRedist está instalado?

Parece que podemos hacerlo buscando en el registro [1][2]. Sin embargo, parece que hay muchas versiones de VCRedist (VC2012,2010,2008,2005 ...), ¿así que necesito revisar todas estas claves de registro?

Respuesta

2

Si acaba de ejecutar instalador de VCRedist (que debe enviar con su programa, de todos modos), hará el trabajo por usted. Los juegos "intentan" instalar DirectX de la misma manera.

+0

este no es un escenario ideal (UX pobre) pero es el más defensivo. –

9

Desde sus DLL dependen de msvcr100.dll, tendrá que encontrar Vcredist para VC 2010.

El número después de 'MSVCR' o 'MSVCP' es la versión interna de Visual Studio x10 - http://en.wikipedia.org/wiki/Microsoft_Visual_Studio#Version_history listas de las valores para las diversas versiones.

Para Visual Studio 2010 puede detectar si el tiempo de ejecución ya está instalado comprobando el valor "Installed" de HKLM\SOFTWARE\Microsoft\VisualStudio\10.0\VC\VCRedist\x86 para aplicaciones/DLL de 32 bits y HKLM\SOFTWARE\Microsoft\VisualStudio\10.0\VC\VCRedist\x64 para aplicaciones/DLL de 64 bits.

Para Visual Studio 2010 y versiones anteriores, http://blogs.msdn.com/b/astebner/archive/2010/05/05/10008146.aspx tiene una buena explicación de los métodos para detectar si el tiempo de ejecución está instalado.

Con Visual Studio 2012, las cosas han cambiado y la clave VCRedist ya no existe. En su lugar, puede mirar el valor Installed de la clave reg (para aplicaciones de 32 bits) Software\Microsoft\VisualStudio\11.0\VC\Runtimes\x86

+0

Esto no es adecuado si intenta registrar una máquina sin Visual Studio – XtianGIS

Cuestiones relacionadas