我有一个带有几个可执行文件的软件,这取决于VC ++ 2012和VC ++ 2010(msvc110.dll
和msvc100.dll
,类似的东西)。我想发布我的应用程序与2012版本可再发行组件,即7mb,并避免使用2010可再发行组件,因此我减少了安装程序的大小。
我的问题是,2012版的可再发行版向后兼容2010版本吗?或者我应该将它们都嵌入安装程序中吗?
请注意,可执行文件已经编译,我没有源代码来使用相同的版本编译它们。
答案 0 :(得分:2)
不幸的是,如果您没有运送运行时模块被编译,如果它在目标系统上不存在,您的应用程序将失败。失败的方式取决于您构建应用程序的方式(例如链接的lib dll,与OpenLibrary模块相比)。
至于兼容性,我们的团队有类似的问题,所以我使用VS2005,VS2010和VS2012模块编写了实验测试代码,其中一个模块将创建一个std :: vector(etc)并将其传递给另一个模块以供使用。它失败了。非常容易重现这个实验。
您需要同时发货。
答案 1 :(得分:1)
你有几个exe,只需将它们全部发送或将其标记为应用程序的要求。 DLL并不大。 如果您可以重建应用程序以使它们对齐,以便它们使用相同的crt,那就更好了。