views:

312

answers:

3

The recent ATL security update updated the C++ runtimes to version 8.0.50727.4053. Unfortunately, this update broke one of our DLLs that dynamically links to the runtime, as we only have 8.0.50727.762 available to us on the target machine (we don't even use ATL).

Is there a way we can get Visual Studio to dynamically link to the older DLL? I'd like to avoid statically linking if possible.

A: 

Copy the requisite DLL versions directly into your executable's directory, it is searched first during dynamic linking.

David Wilson
The assembly uses side-by-side linking, which first checks the WinSxS directory for the DLL specified in the manifest. I've tried manually editing the manifest but it gives SxS configuration errors.
Ron Warholic
sounds like the question should be "how do I edit the manifest to allow my library to work with other versions of the C++ runtime" then.
jalf
A fair assessment, however I first wanted to probe to see if anyone had experienced growing pains with the ATL update like we have.
Ron Warholic
A: 

I don't know if this is feasible but have you tried having your customers install the redistributable package?

Motti
I wish we could but the system is an integrated FPGA processor and a workstation that has a tightly controlled environment. If we wanted to upgrade runtimes we'd need to do a lot of extra work.
Ron Warholic
+2  A: 

Another solution is forcing VS to link against the old versions of the WinSxS DLLs as explained in this article.

Motti