2009-08-06 18 views
8

Jak być może wiesz, firma Microsoft niedawno wdrożyła aktualizację zabezpieczeń dla Visual Studio: KB971090.VC++: KB971090 i wybieranie zależności Visual C Runtime DLL

Między innymi zaktualizował bibliotekę Visual C Runtime DLL z wersji 8.0.50727.762 do wersji 8.0.50727.4053.

Po tej aktualizacji wszystko, co kompiluję, używa dynamicznie połączonego środowiska wykonawczego, aktualizuje zależności do nowego środowiska wykonawczego.

Oczywiście w przypadku nowych aplikacji można zaktualizować ją do nowej, prawdopodobnie bezpieczniejszej wersji.

Ale chciałbym również móc zachować starą zależność - na przykład, chciałbym zbudować pakiet poprawek, który wymaga tylko jednej biblioteki DLL (jeśli spróbuję to zrobić po aktualizacji, będę get the dreaded "Ta aplikacja nie powiodła się, ponieważ konfiguracja aplikacji jest niepoprawna." chyba że rozpowszechniam również zaktualizowane środowisko uruchomieniowe).

Czy jest jakiś sposób, aby to zrobić, czy będę musiał zachować dwie instalacje programu Visual Studio: jeden zaktualizowany i jeden niezaktualizowany?

+0

Patrz także: http://netscantools.blogspot.com/2009/08/security-update-for -compiler-broke-our.html –

+0

Mam bardzo podobne pytanie, ale bardziej niepokoi mnie używanie innej wersji biblioteki wykonawczej c w jednym pliku wykonywalnym. zobacz http://stackoverflow.com/questions/1238741/does-the-latest-visual-studio-2005-security-update-cause-c-runtime-library-issues – iain

+0

Cool. To już trzecie kliknięcie w Google dla KB971090. – JesperE

Odpowiedz

6

można określić wersję za pomocą obejścia znaleźć here

3

Możesz wyłączyć autogenerowane manifesty i dołączyć własne z wersją biblioteki, której potrzebujesz.

Na przykład:

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

Sugeruje to, że używałbyś nowych nagłówków i bibliotek pośredniczących w czasie kompilacji oraz starszej biblioteki DLL tylko w środowisku wykonawczym. Czy to jest obsługiwane przez firmę Microsoft? – pauldoo

+0

Myślę, że przy drobnych aktualizacjach będzie dobrze. –

+0

Twój przykład odnosi się do DebugCRT. Tego NIE można redystrybuować. –

Powiązane problemy