【问题标题】:VC 2017 Runtime deployment methodsVC 2017 运行时部署方法
【发布时间】:2017-10-19 20:17:48
【问题描述】:

嗨!

有人可以回答我的问题吗?

VC++ 部署有两种选择。 我可以使用:

  1. 调用可重新分发的可执行文件(vcredist_x86.exe
  2. 添加唯一一个重要的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


【解决方案1】:

问题实际上是您使用的是哪种安装程序/设置解决方案?如果您使用基于 MSI 的安装程序,则合并模块。另一个足够通用,假设安装本身具有管理员权限,您通常可以将其用于任何标准安装程序。

请注意,CRT 部署是 Windows 应用商店中的 UWP 应用只需为您处理的领域之一。

【讨论】:

  • 我非常感谢您的回答。我有一个带有自定义引导程序的 WIX 项目。 MSM 对我来说更好,因为它明显更小 (1MB)、Microsoft_VC141_CRT_x86.msm,并且可再发行组件的大小为 14MB。问题是,我需要为客户提供好的解决方案,而不是我......
  • > 另一个足够通用,假设安装本身具有管理员权限,您通常可以将其用于任何标准安装程序。必须注意,vcredist 可执行文件本身就是一个 WIX Burn 程序,包含用于VC redict 和 UCRT 的 MSU。 exe 中的 MSI不允许 允许您在 MSI 中使用它(除非您在安装的 UI 部分中运行它;因此它仅对 其他 类型的安装程序有用)。
猜你喜欢
  • 2011-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-23
  • 1970-01-01
  • 1970-01-01
  • 2020-10-06
相关资源
最近更新 更多