Las recientes actualizaciones de seguridad de Visual Studio 2005 pueden estar causando problemas para nosotros.Actualizaciones de seguridad de Visual Studio 2005 y versiones de CRT DLL en manifiesto
Construimos y distribuimos internamente SDK escritos en C++. Estos SDK son solo una colección de archivos de encabezado y bibliotecas estáticas. Después de instalar las actualizaciones de seguridad, nuestros SDK ahora dependen de las versiones más recientes de las DLL de CRT de MSVC. Estos SDK se utilizan en etapas posteriores en proyectos que producen archivos EXE.
Si uno de estos archivos EXE se genera con una combinación de SDK (algunos de antes de las actualizaciones de seguridad y algunos posteriores), el archivo EXE generado hace referencia a dos conjuntos de archivos DLL de tiempo de ejecución MSVC. Por ejemplo:
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.4053" processorArchitecture="amd64" publicKeyToken="1fc8b3b9a1e18e3b">
</assemblyIdentity>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.762" processorArchitecture="amd64" publicKeyToken="1fc8b3b9a1e18e3b">
</assemblyIdentity>
</dependentAssembly>
</dependency>
</assembly>
¿Esto significa que en tiempo de ejecución este EXE utilizará ambas versiones de la DLL? ¿Significa esto que debemos distribuir ambas versiones de los archivos DLL MSVC Runtime con este EXE?
¿Hay una manera simple de evitar este problema sin forzar que todos los SDK se construyan con los parches de seguridad de Visual Studio 2005 instalados? (Esto sería indeseable para algunos de los SDK más antiguos y bastante estables que no queremos reconstruir innecesariamente)
Es posible simplemente reescribir el archivo de manifiesto en los SDK o en el archivo EXE final para que solo uno versión de MSVC CRT DLL se mencionan?
Mi entendimiento es que las actualizaciones relevantes son los siguientes:
Actualización de seguridad para Microsoft Visual Studio 2005 Service Pack 1: KB971090
http://go.microsoft.com/fwlink/?LinkId=155934
Actualización de seguridad para Microsoft Visual Studio 2008 Service Pack 1: KB971092
http://go.microsoft.com/fwlink/?LinkID=155933
he descubierto otras dos preguntas que son similares:
VC++: KB971090 and selecting Visual C Runtime DLL dependencies
¿por qué se pasó a la wiki de la comunidad? –