【发布时间】:2017-05-09 15:12:28
【问题描述】:
我最近毕业于 VS 2015。由于下面解释的原因,我想避免运行 VC++ Redistributables 安装程序。我在我的安装程序中包含了规定的 DLL,用于“应用本地”安装:
MFC140.DLL
concrt140.dll
msvcp140.dll
vccorlib140.dll
vcruntime140.dll
mfc140u.dll
mfcm140u.dll
这似乎有效。因此,我的应用程序在“处女”PC 上安装时运行。
我的问题是,我在哪里可以找到
msvcr140.dll?
这里提到:https://www.visualstudio.com/license-terms/mt228262/。在安装了 VC Redistributables 的 PC 上搜索所有目录时,我无法在任何地方找到它。它存在吗? Windows 隐藏了吗?
注意 1:为什么我需要避免使用 MS VC++ Redistributables 安装程序:
- 它在我的 WiX 安装程序中显示为单独安装。这让我的市场人口(消费者)感到非常困惑。
- 卸载我的软件时,还需要卸载 VC Redist.,这会导致并发症。
- 在某些情况下,出现了某种故障导致 PC 无法运行。我怀疑重复安装 VC Redist。发生的情况是标准用户不再能够启动任何程序。
- VC Redist。我的安装程序从 25MB 膨胀到 40MB,额外增加了 15MB。通过选择我需要的组件,我将其缩减了 10 MB。
- 用于测试先前版本的 WiX 代码复杂、神秘且难以理解。
- 是的,我了解自动更新 Windows DLL 的好处。但是,具有过期 DLL 的 PC 比无法使用的 PC 要好。
注意 2:我不能做静态链接,我的应用是 Win32 和 MFC DLL 的混合包,我得到链接器错误。
【问题讨论】:
-
另一种选择是通过合并模块安装 c++ 运行时文件(来自 Program Files [(x86)]\Common Files\Merge Modules):msdn.microsoft.com/en-us/library/ms235299.aspx
-
Morten Frederiksen 感谢您的回复。什么是合并模块?我如何将它们与 WiX 一起使用?我不会冒同样的损坏系统的风险吗?
-
这里是关于如何在您的 WiX 代码中包含合并模块的指南:wixtoolset.org/documentation/manual/v3/howtos/…
-
合并模块不会比单独的 VC redist 安装程序为您带来任何好处。它仍然比只包含所需的 DLL 更臃肿,而且它会更新系统 DLL。
-
感谢 Morten Frederiksen 的链接。 zett42:这是一个交易破坏者:o)
标签: visual-studio-2015 wix vcredist