We are porting a VC++ project from Visual Studio 2003 to Visual Studio 2008 SP1(9.0.30729.4148). The dependent external libraries are also compiled with Visual Studio 2008 SP1.
MainApp - Main application Compiled with VS SP1 9.0.30729.4148
ExtStaticLib1 - External static library compiled with VS SP1 9.0.30729.4148
ExtDynamicDll1 - External DLL compiled with VS SP1 9.0.30729.4148
There are two deployment scenarios for the Main application:
We are doing following to solve this:
Compile MainApp targets with macro _BIND_TO_CURRENT_OPENMP_VERSION ( for all the projects in MainApp).
Distribute the VS2008SP1 redistributable DLLs as private assemblies and copy them in application install directory.
Questions:
Thanks.
I would avoid using any of the BIND macros. You'll get into troubles sooner than later.
Even if you distribute the VC runtime dlls as private assemblies, you can't be sure that the user doesn't have them installed already with some other app.
One problem that arises is that you can end up with a manifest that references multiple c-runtime versions. Here's an open issue about this (FYI: I had that very same issue!).
So if there's no reason that would force you to only use a very specific version of the c-runtime and not the latest compatible one, then don't use those define macros!
Found this blog resource which has answer to your question. Refer section which says "Updates, patches and service packs" http://helgeklein.com/blog/2010/03/deploying-visual-c-runtime-files-as-private-assemblies/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With