Je compile un projet qui utilise plusieurs DLL et compile avec VS2008. Après une récente mise à jour Windows, les DLL compilées sur mon ordinateur ont cessé de fonctionner sur d'autres ordinateurs.La mise à jour Windows casse les DLL?
Après une enquête, il est apparu que la bibliothèque à jour redistribuable CRT que je suis avec la compilation de la version « 9.0.21022.8 » à la version « 9.0.30729.4148 »
Cela est évident à partir du fichier Manifest du EXE je compile. il contient ce qui suit:
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="amd64" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.30729.4148" processorArchitecture="amd64" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
</dependentAssembly>
</dependency>
Signification voulant utiliser deux versions différentes du CRT en même temps. la deuxième version est nécessaire par le code que je compile en ce moment et la première version est nécessaire pour les anciennes DLL qui ont été compilées il y a quelques semaines.
Sur les ordinateurs sur lesquels l'application est déployée, cela devient un problème car ils obtiennent leur DLL CRT à partir d'un dossier local appelé Microsoft.VC90.CRT
et non de WinSXS. Ce dossier ne peut pas contenir deux versions différentes de la DLL.
Y a-t-il une solution connue à ce problème ou dois-je commencer à compiler toutes les autres DLL avec le nouveau CRT?
Je pense avoir remarqué le même problème la semaine dernière. Après une mise à jour de Windows, un projet qui avait été construit correctement la veille, n'est plus construit. En fait, il a provoqué un crash ICE dans le compilateur VS2008. Une reconstruction tout a fixé ceci. Je n'ai jamais déterminé la cause exacte, mais ce n'est pas une grosse affaire pour moi car nous n'avons pas encore expédié. – demoncodemonkey