我可以将Visual Studio 2015 C ++可再发行的DLL与我的应用程序捆绑在一起吗?

付费书呆子:

我已经使用Microsoft Visual Studio 2015社区版构建了一个C ++应用程序。我正在使用高级安装程序来确保Visual Studio 2015Visual C ++可再发行组件是先决条件。

但是,可再发行的安装程序并不完美。我的一些用户报告说,可重新分发的安装程序挂起,或者安装时提示无法安装,然后用户收到“此程序无法启动,因为您的计算机缺少MSVCP140.dll”错误。

根据Microsoft的说法,我现在可以将可再发行的DLL与我的应用程序打包在一起,尽管他们不建议这样做:

若要部署可重新分发的Visual C ++文件,可以使用Visual Studio中包含的Visual C ++可重新分发程序包(VCRedist_x86.exe,VCRedist_x64.exe或VCRedist_arm.exe)。...也可以在应用程序本地文件夹(包含可执行应用程序文件的文件夹)中直接安装可再发行的Visual C ++ DLL。出于维修原因,我们不建议您使用此安装位置。

中有4个文件C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\redist\x64\Microsoft.VC140.CRT这是否意味着我只需要在安装过程中将它们复制到应用程序的目录中?

  • MyApp.exe
  • concrt140.dll
  • msvcp140.dll
  • vccorlib140
  • vcruntime140.dll

这样可以吗?我需要出示许可证吗?为什么没有更多的人这样做,而不是需要重新安装可再发行组件?

dxiv:

中有4个文件C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\redist\x64\Microsoft.VC140.CRT这是否意味着我只需要在安装过程中将它们复制到应用程序的目录中?

是的,您引用的段落就是这个意思。

这样可以吗?我需要出示许可证吗?为什么没有更多的人这样做,而不是需要重新安装可再发行组件?

从技术上讲,这是可以的。如果您想对其进行修养,可以在readme或中help/about加入注释,以表明VC++ 2015 redistributables provided in "local deployment" modeMicrosoft的Visual C ++部署中明确允许的效果

至于为什么更多的人不这样做,我想(在所有关心的人中):

  • 对于单个模块应用程序MyApp.exe来说,通过静态链接的所有内容来构建它更容易,从而消除了外部依赖。
  • 包括这些文件可从分发(可能是下载)的大小中节省1+ MB;
  • 使用运行时的私有副本("local deployment"运行会将更新的责任转移给维护者,因此,在进行关键/安全修复的情况下,必须及时重新发布该软件包-而不是"central deployment"可能通过Windows Update交付该软件包,用好这两个坏的,可能带来。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我可以在Visual Studio 2015或Mac(Eclipse或XCode)上开发基于Linux的Raspberry Pi应用程序吗?

剥离要与应用程序捆绑在一起的JRE-我可以省略什么?

我可以在Visual Studio 2012/2013/2015/2017/2019中记录/播放宏吗?

我应该将javascript框架与应用程序捆绑在一起还是使用公共CDN?

最终版本发布后(不重新安装),我可以将Visual Studio Community 2015 RC更新到2015 Release吗?

Visual Studio 2015-C#Windows通用应用程序缺少程序集参考

无法在设备上调试Android c ++应用(Visual Studio 2015)

Visual Studio 2015 C ++和程序集未生成

到目前为止,我可以在Visual Studio 2015中使用C ++模块做什么?(使用实验性开关)

Visual Studio 2015更新1,c错误

用于在Windows 7上部署使用Visual Studio 2015开发的C ++ exe的可再发行组件

如何将Realm数据库文件与我的应用程序捆绑在一起以进行安装部署

如何将VC ++ 2015可再发行的软件包与ClickOnce(.NET)应用程序捆绑在一起?

我可以使用Visual Studio 2015来定位.net Framework 4.7吗?

如何在swift4.2中将领域文件与我的应用程序捆绑在一起?

如果我使用SQLite创建C#桌面应用程序,数据库将与安装程序捆绑在一起吗?

可以将Perl与macOS应用程序捆绑在一起吗?

用于Visual Studio 2015的Wine Visual C ++可重新分发

我可以在Visual Studio 2015 final中隐藏笑脸吗?

如何在Visual Studio 2015中更新我的C ++项目以使用新的Universal CRT?

我可以使用Visual Studio Community 2015进行TypeScript开发吗?

在Visual Studio 2015中将Node.js代码与Apache Cordova应用程序一起使用

如何让C#代码文件与Visual Studio 2015一起运行

无法启动程序C:\ ... \ ****。dll VB.net应用程序Visual Studio 2015

我可以在Visual Studio 2015中使用.Net framework 3.5打开项目吗?

Visual Studio 2015类库(我正在使用C#)

我可以使用 Windows 7 和 Visual Studio 2015 开发 UWP 程序吗?

找不到用于 Visual Studio 2015 的 Visual C++ 可再发行组件的 MSM 文件?

我需要设置哪个 iOS 目标以避免将 Swift 运行时库与我的 iOS 应用程序捆绑在一起?