【发布时间】: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