【问题标题】:Not able to run C++ application built with VS2017 on another machine where VS2017 is not installed无法在另一台未安装 VS2017 的机器上运行使用 VS2017 构建的 C++ 应用程序
【发布时间】:2020-03-18 11:43:38
【问题描述】:

我在 Windows 10 机器上安装了 VS2017,我正在其中构建我的 C++ 代码。当构建成功时,我可以在同一台机器上运行该 exe。但是,当我在另一台未安装 VS2017 的 winodws 10 机器上复制该 exe(以及所有相关的 DLL)时,会出现错误“由于找不到 urctbase.dll,代码执行无法继续”

我将这些 dll(ucrtbase.dll vcrutime140.dll 等)复制到 exe 所在的同一位置并尝试运行它然后给出错误 “应用程序无法正确启动(0xc700000b)。单击确定关闭应用程序”

我安装了 VC Redistributable-2017 软件包以在该机器上设置运行时环境,但问题仍然存在。

谁能帮忙解决这个问题?

【问题讨论】:

  • 您可以使用Dependency Walker 确保您已经考虑了所有 DLL 依赖项。
  • 你可以使用dependency walker来获取更多关于加载依赖的信息
  • 不要复制 dll,但要正确安装它们:support.microsoft.com/en-us/help/2977003/…
  • 此类问题的一个原因是在目标机器上复制或安装 DEBUG 版本,而不是 RELEASE 版本。与调试相关的 DLL 不是 VC Redistributable 2017 软件包的一部分。
  • 另请注意,VC 可再发行组件有单独的 32 位和 64 位版本。

标签: c++ visual-studio-2017


【解决方案1】:

很难获得程序的所有相关 DLL。我建议您创建可以检测所有这些依赖项的setup project

0- 将您的项目置于release 模式
1-here 安装Microsoft Visual Studio Installer Projects
2- 将安装项目添加到您的VS solution

3-将你的程序添加到安装项目中

4-选择项目的主要输出

5- 如您所见,visual studio 检测所有 dll 依赖项

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-30
    • 1970-01-01
    • 1970-01-01
    • 2013-01-03
    • 1970-01-01
    • 2019-05-31
    • 2019-10-26
    • 2021-09-08
    相关资源
    最近更新 更多