【问题标题】:MSVC 2015 Universal CRT for app-local deployment用于应用本地部署的 MSVC 2015 通用 CRT
【发布时间】:2015-09-16 07:10:37
【问题描述】:

宣布通用 CRT 将是一个可重新分发的 DLL,因此应用本地部署仍然是可能的。

我已经安装了 Visual Studio 2015 Express Edition,我在 SDK 目录中寻找 ucrtbase.dll,但我找不到任何东西。我查看的目录是“C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10”,但在“Microsoft.UniversalCRT.Debug”下只有 CRT 的调试版本。

我不想从我的系统中复制任何 DLL,我总是只从“Redist”目录中打包文件。因此,例如(与以前版本的 MSVC 一样),我使用 x86 构建从“C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\redist\x86\Microsoft.VC140.CRT”重新分发文件我的应用程序。

我是否可以下载包含 ucrtbase.dll 或 Visual Studio 或 SDK 更新的包?

目前我还不确定是否仅 ucrtbase.dll 就足够了,因为应用程序似乎链接到存根 DLL api-*.dll,我不确定是否需要重新- 也分发。

【问题讨论】:

  • ucrtbase.dll是Win10中的系统组件。使用 Windows 更新为旧版本的 Windows 提供它。你不应该自己分发它。
  • 除了 Microsoft 改变主意并正式支持重新分发 DLL 之外是正确的。请参阅已接受答案中的链接。
  • 嗯,不完全是,他们很清楚他们的一些客户不使用 Windows 更新。应用程序本地部署不是一回事,并且在实际启用了 WU 的机器上是有害的。此类客户应自带。
  • 我的问题是专门关于应用程序本地部署的,这现在是支持的方案之一(尽管不一定是首选或广告)。最初微软的计划是根本不支持这个。
  • api-* 依赖是假的:ofekshilon.com/2016/03/27/…

标签: c++ deployment visual-studio-2015 redistributable vcredist


【解决方案1】:

This blog post分发使用通用 CRT 的软件部分下详细描述了所有案例,并带有关于应用本地部署的大红色更新通知:

2015 年 9 月 11 日更新:支持通用 CRT 的应用本地部署。要获取用于应用本地部署的二进制文件,请安装适用于 Windows 10 的 Windows 软件开发工具包 (SDK)。这些二进制文件将安装到 C:\Program Files (x86)\Windows Kits\10\Redist\ucrt。您需要使用您的应用程序复制所有 DLL(请注意,不同版本的 Windows 所需的 DLL 集是不同的,因此您必须包含所有 DLL,以便您的程序在所有受支持的 Windows 版本上运行)

【讨论】:

  • 谢谢。我发誓我已经多次访问该博客文章,但显然最近还不够。此外,我之前失败的 SDK 的安装现在似乎可以工作了,我可以看到 (41!) 所需的 DLL。我想知道为什么他们不能做到 42...
【解决方案2】:

您可以从Microsoft Donwload Center 下载UCRT。 UCRT 现在是操作系统的一部分,对于 Vista SP2/7/8/8.1,它由更新中心分发。

【讨论】:

    最近更新 更多