views:

2714

answers:

2

As you might know, Microsoft recently deployed a security update for Visual Studio: KB971090.

Among other things, this updated the Visual C Runtime DLL from version 8.0.50727.762 to 8.0.50727.4053.

So after this update, everything I compile that uses the runtime dynamically linked, gets their dependencies updated to the new runtime.

Of course, for new applications it is fine to update to the new, presumably more secure, version.

But I would also like to be able to retain the old dependency - for example, I might like to build a fixpack that only require a single DLL to be replaced (if I try to do that after the update, I will get the dreaded "This application has failed to start because the application configuration is incorrect." unless I also distribute the updated runtime).

Is there any way to do this, or will I need to retain two installations of Visual Studio: one updated and one non-updated?

+3  A: 

You can turn off autogenerated manifest and include your own with the library version you need.

For example:

<dependency><dependentAssembly><assemblyIdentity type="win32" name="Microsoft.VC90.DebugCRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity></dependentAssembly></dependency>
Sergius
This implies you'd use the new headers and stub libraries at build time and the older DLL only at runtime. Is this supported by Microsoft?
pauldoo
I think for minor updates it will be ok.
Sergius
+4  A: 

You can specify the version by using the workaround found here

Ted.