【发布时间】:2017-10-19 20:17:48
【问题描述】:
嗨!
有人可以回答我的问题吗?
VC++ 部署有两种选择。 我可以使用:
- 调用可重新分发的可执行文件(vcredist_x86.exe)
- 添加唯一一个重要的CRT合并模块
这两种解决方案我都可以接受。 哪个更适合家庭桌面用户?
非常感谢
【问题讨论】:
-
合并模块几乎是一个灌篮高手我会说,没有什么漂亮的微软版权声明。您确实忽略了选项 #3,本地部署。只需将 vcruntime140.dll 和(可能)msvcp140.dll 复制到与部署的 .exe 相同的目录中。别人搞砸的安装程序无法触及。
-
非常感谢您的评论。复制到应用程序的目录有缺点。 Windows 无法更新它们。
-
Microsoft 已放弃为这些 DLL 部署安全更新。他们试图通过将这些 DLL 存储在 VS2005 的 winsxs 缓存中来使其工作。但对于无法正确获取清单或根本不知道如何部署到 winxs 的程序员来说,这是一场彻头彻尾的噩梦。所以他们在 VS2010 上放弃了它。从那时起,就再也没有通过 Windows Update 提供过任何更新。因此,您正在尝试启用一个永远不会使用的选项。
-
选项 4:静态链接到 CRT。
-
@zett42 谢谢,我在设置应用程序中使用静态链接的 CRT,但这不是一个好主意,因为我需要与其他应用程序共享库。这种解决方案没有理由。
标签: visual-c++ windows-installer msvcrt redistributable