Visual studio 2015 Visual Studio 2015安装项目的VC++2010和VC++2012可再发行先决条件

Visual studio 2015 Visual Studio 2015安装项目的VC++2010和VC++2012可再发行先决条件,visual-studio-2015,setup-project,prerequisites,visual-c++-runtime,Visual Studio 2015,Setup Project,Prerequisites,Visual C++ Runtime,我安装了VisualStudio 2015,我已经建立了一个.NET 4.6应用程序,它依赖于一些第三方.NET程序集,这依赖于一些C++ DLL和EXES,它们又依赖于Visual C++ 2012 X64可重新分发。我使用的SDK包括一些合并模块,这些模块部署SDK的.NET和C++程序集,这些依赖于我依赖的但不是VisualC++运行时。 如果VisualC++ 2012可重新分配并没有安装在目标机上,则.NET 4.6应用程序在启动时崩溃,称未处理异常:Syr.Io.FielOnFunE

我安装了VisualStudio 2015,我已经建立了一个.NET 4.6应用程序,它依赖于一些第三方.NET程序集,这依赖于一些C++ DLL和EXES,它们又依赖于Visual C++ 2012 X64可重新分发。我使用的SDK包括一些合并模块,这些模块部署SDK的.NET和C++程序集,这些依赖于我依赖的但不是VisualC++运行时。

如果VisualC++ 2012可重新分配并没有安装在目标机上,则.NET 4.6应用程序在启动时崩溃,称未处理异常:Syr.Io.FielOnFunExtExpCET:无法加载文件或程序集“MyMauldAddiaby.DLL”或其依赖关系之一。找不到指定的模块。即使在目标系统上安装了VisualC++ 2015可重分发表时,也会发生这种情况。因此,C++运行时依赖性似乎不是向后/向前兼容的。 我正在使用Visual Studio 2015安装项目为我的应用程序创建安装程序。但是,我可以从中选择的安装程序必备列表不包括VisualC++ 2012运行库。我可以选择的唯一的VisualC++库是“Visual C++ 14运行库”。我相信这些与VisualC++ 2015可重分配的东西是一样的,这对我的软件来说是不足以加载的。 <> P>是否有任何方法将VisualC++ 2012运行时添加到我的VS2015安装项目安装程序的前一个必需品列表中,例如,通过安装更多的SDK?或者我应该在我的安装程序中打包2012 C++运行时吗?< /P> 编辑:通过我正在使用的第三方SDK的文档和安装程序包挖掘,如果Visual C++ 2010和2012重新分发表都存在于目标系统上,我的应用程序可能实际上只能正确运行。另外,我可能需要同时安装x86和x64版本。我认为我无法安装所有带有合并模块的组件,因为:

我们建议您不要使用合并模块,除非您不必为应用程序提供服务,并且不依赖于多个版本的DLL。同一DLL的不同版本的合并模块不能包含在一个安装程序中,并且合并模块使得独立于应用程序为DLL提供服务变得困难。相反,我们建议您安装VisualC++可重分配包。
如何添加这些较旧的可再发行文件作为VS2015安装项目的先决条件?

经过几个小时的研究,我发现可以将项目添加到Visual Studio 2015安装项目先决条件对话框中

与来自的VS2015更新的引导程序路径\程序文件x86\Microsoft Visual Studio 14.0\SDK\Bootstrapper\Packages相结合将实现这一目标

然而,这将给我留下一个安装项目,该项目只能在一个高度定制的构建环境中正确构建,这在新机器上很难复制。我发现没有简单的安装VS附加组件或MS包可以添加这种支持

最后,我现在采用的方法是将以下MS merge模块添加到我的安装项目中:

Microsoft_VC110_CRT_x86.msm Microsoft_VC110_CRT_x64.msm Microsoft_VC120_CRT_x86.msm Microsoft_VC120_CRT_x64.msm 这导致运行时DLL被部署到C:\Windows\System32和C:\Windows\SysWOW64,并且它们似乎可以工作。这不会导致“Windows程序和功能”对话框中出现“可再发行”对话框


然而,由于MS建议不使用部署运行时的方法,所以我很容易接受将VC++2010和VC++ 2012打包成VS2015安装项目的更容易维护的方法。< /P>也许我没有明确交流,因为我不是C++或Windows安装程序专家。作为SDK安装程序的一部分,安装SDK会在开发人员的机器上正确安装运行时必备组件。我想分发我的应用程序,它使用SDK,而不需要在最终用户的机器上安装SDK本身。所以我需要的是C++运行时是我自己的安装程序包和我已经设置的合并模块的先决条件。我不确定为什么VS 2015安装项目无法实现这一点?我也不确定,您只需将DLL复制到安装目录中即可。不应超过msvcr100.dll和msvcr110.dll,但如果您无法找出您需要的其他dll,请询问SDK作者。我以前的搜索一定没有正确的关键字。这看起来很重要:VS2010中的自定义引导程序指令需要对VS2015进行大量更新。引导程序SDK位于完全不同的位置。如果我能弄明白,我想我会发布一个我自己问题的解决方案,除非它是先关闭的。同样,它们是类似的。同样,溶质


由于Visual Studio的文件布局发生了更改,此处显示的运行时不可用。您好,您是否找到了正确部署运行时的方法?我目前面临着同样的问题,如果可能的话,我也希望用正确的方式来解决。