Pacha
Pacha

Reputation: 1526

Is Visual C++ 2012 redistributable backwards compatible with the 2010 version?

I have a software with a couple of executables, that depends on both VC++ 2012 and VC++ 2010 (msvc110.dll, and msvc100.dll, something like that). I want to ship my application with the 2012 version redistributable, that is 7mb, and avoid using the 2010 redistributable so I reduce the size of the installer.

My question is, is the 2012 version of the redistributable backwards compatible with the 2010 version? Or should I embed both of them in the installer?

Note that the executables are already compiled, and I don't have the source code to compile them using the same version.

Upvotes: 1

Views: 3732

Answers (2)

Chris
Chris

Reputation: 2763

Unfortunately if you don't ship the runtime the module was compiled against,if it does not exist on the target system, your app will fail. How it fails depends on how you built your app (e.g. linked lib dll, versus OpenLibrary module).

As for compatibility, our team had similar questions so I wrote experimental test code using VS2005, VS2010 and VS2012 modules where one module would create a std::vector (etc) and pass it to another module for use. It failed badly. Extremely easy to reproduce this experiment.

You will need to ship both.

Upvotes: 2

Jon
Jon

Reputation: 875

You have several exe, just ship them all or mark it down as a requirement for your app. DLLs are not big. If you can rebuild apps to align them so they use the same crt, that would be better.

Upvotes: 1

Related Questions