We are looking to start building internally used software in 64 bit, and found this morning that installing the x64 VS 2013 redistributable either uninstalls or makes inaccessible the x86 dlls. We have a lot of software and do not want to rebuild everything in one go for a hard cutover. Is there a reasonable way to install both versions of the redistributable packages so they co-exist, so that a migration may be done instead of a hard cut from one build to the other for everything? Development machines with Visual Studio 2013 installed have no issue, as it provides both sets of dlls and makes them both accessible at the same time.

share|improve this question
    
I don't think it can be done due to the difference between the CPU architectures and the support of OS. Have you think about virtual machine for one of the CPU architectures (x86 or x64)? – DeJaVo Apr 24 '15 at 19:34
    
You actually can, in this case all we're really talking about are a handful of dlls that need to be accessible by the application. It turns out to be a registry clobbering issue, I posted my own answer explaining the details. – Adam Davis Apr 27 '15 at 15:18

Turns out the issue seems to be the x64 redistributable clobbering the registry entry. The registry entries for the redistributables can be found here:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\12.0\VC\Runtimes

When x86 version is installed, it adds it's own key to whatever exists. When the x64 version is installed, it deletes the other keys (in this case the already installed x86 key) and then adds it's own. The dlls are there, just not properly referenced so they can be used.

The quick solution here is to install the x64 redist first, THEN the x86 version, and then both will be usable without issue.

Why the x64 clobbers but the x86 doesn't is beyond me.

share|improve this answer

After installing VC++ 2013 update for an x86-based application, the x64 Visual C++ 2013 runtime libraries are missing. For example, Installing the “Visual C++ Redistributable 2013 x86 v12.0.30501” removes binaries for non-target architectures i.e “Visual C++ Redistributable 2013 v12.0.21005” x86 and x64!

The 12.0.30501 version of the VCRedist can be downloaded from https://www.microsoft.com/en-us/download/details.aspx?id=40784

Resolution - install https://support.microsoft.com/en-us/kb/3138367 This fix makes sure that both versions of the Visual C++ redistributable are visible when you add or remove programs after installation of the update.

Affiliation - Microsoft Support Engineer

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.