2009-08-06 6 views
8

Comme vous le savez peut-être, Microsoft a récemment déployé une mise à jour de sécurité pour Visual Studio: KB971090.VC++: KB971090 et en sélectionnant les dépendances Visual C Runtime DLL

Entre autres choses, cela a mis à jour la DLL Visual C Runtime de la version 8.0.50727.762 à 8.0.50727.4053. Donc, après cette mise à jour, tout ce que je compile qui utilise le runtime dynamiquement lié, obtient leurs dépendances mises à jour pour le nouveau runtime.

Bien sûr, pour les nouvelles applications, il est bien de mettre à jour vers la nouvelle version, probablement plus sécurisée. Mais je voudrais aussi pouvoir conserver l'ancienne dépendance - par exemple, je voudrais construire un groupe de correctifs qui ne nécessite qu'une seule DLL à remplacer (si j'essaye de le faire après la mise à jour, je le ferai obtenir le redouté "Cette application n'a pas pu démarrer car la configuration de l'application est incorrecte." à moins que je ne distribue également le runtime mis à jour).

Y a-t-il un moyen de le faire, ou dois-je conserver deux installations de Visual Studio: une mise à jour et une mise à jour non?

+0

Voir aussi: http://netscantools.blogspot.com/2009/08/security-update-for -compiler-broke-our.html –

+0

J'ai une question très similaire, mais je suis plus préoccupé par l'utilisation de la version différente de la bibliothèque runtime c dans un seul exécutable. voir http://stackoverflow.com/questions/1238741/does-the-latest-visual-studio-2005-security-update-cause-c-runtime-library-issues – iain

+0

Cool. Ceci est maintenant le troisième hit sur Google pour KB971090. – JesperE

Répondre

6

Vous pouvez spécifier la version en utilisant la solution de contournement trouvé here

3

Vous pouvez désactiver le manifeste générée automatiquement et inclure le vôtre avec la version de bibliothèque dont vous avez besoin.

Par exemple:

<dependency><dependentAssembly><assemblyIdentity type="win32" name="Microsoft.VC90.DebugCRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity></dependentAssembly></dependency> 
+0

Cela implique que vous utiliseriez les nouvelles bibliothèques d'en-têtes et de stub au moment de la construction et l'ancienne DLL uniquement lors de l'exécution. Est-ce supporté par Microsoft? – pauldoo

+0

Je pense que pour les mises à jour mineures ça ira. –

+0

Votre exemple fait référence à DebugCRT. Celui-là n'est PAS redistribuable. –

Questions connexes