Visual Studio 2015 / Win10:appcrt140.dll 丢失
Posted
技术标签:
【中文标题】Visual Studio 2015 / Win10:appcrt140.dll 丢失【英文标题】:Visual Studio 2015 / Win10: appcrt140.dll missing 【发布时间】:2015-08-20 22:56:29 【问题描述】:我目前正在将链接到静态库的命令行可执行文件的解决方案从 VS2013 转换为 VS2015。一切都可以正常编译和链接,但是,在执行命令行可执行文件时,找不到新的appcrt140.dll
:
我安装了 x86 和 x64 VC 可再发行组件。从我在线阅读的内容来看,它应该是 Windows10 的一部分,但是,我无法在我的系统上检测到这个文件。另外,我的系统上缺少desktopcrt140.dll
;两者都应该是 VS2015 redist 的一部分(参见 Visual C++ Runtime Files),但是,它们似乎没有与 VS2015 Enterprise 一起安装:
我在这里缺少什么/如何安装缺少的 dll?
【问题讨论】:
【参考方案1】:如果我理解正确的话,CRT 在 VS2015 CTP1 和当前的 VS2015(更多细节here)之间发生了重大变化,其中之一是用他们所谓的通用 CRT 替换你丢失的两个 dll(即表示 Windows 10 的一部分)。
AppCRT 和 DesktopCRT 已重新组合成一个库,我们将其命名为 Universal CRT。
从这一点来看,如果你还没有使用它,我会说你应该升级到最新版本的 VS2015。如果您已经在使用它并收到此错误,则可能是由于 VS2015 CTP1 的依赖项造成的。
【讨论】:
VS2015 是 released 它不再是 CTP 感谢您的提示!我在 VS2015 Enterprise 14.0.23107.0 上。我的系统上同时安装了ucrtbase.dll
和ucrtbased.dll
。不过,我想知道为什么我的应用程序正在寻找(看似过时的)appcrt140.dll
。现在我猜测它与一些预编译的依赖项有关,我正在使用 NuGet(v140 boost 和 zlib 可能是候选者)。是否可以使用依赖walker之类的工具来确定请求/错误链接appcrt140.dll
的dll?
@jmartinez 是的,dependency walker 将帮助您解决这个问题 - 它会显示 dll 是由您的模块直接链接还是由依赖项链接。顺便说一句,一个空的控制台应用程序也会受此影响吗?如果不是,则问题很可能是由依赖关系引起的。
问题是由错误的依赖项 (cpprestsdk-2.5.0) 引起的,因为这个 dll 链接反对 appcrt140.dll
。更新到cpprestsdk-2.6.0 解决了这个问题,现在一切正常。
所以有人知道在哪里下载 appcrt140d.dll 吗?以上是关于Visual Studio 2015 / Win10:appcrt140.dll 丢失的主要内容,如果未能解决你的问题,请参考以下文章