使用Visual Studio 2019构建,但越来越依赖MFC140U.dll

时间:2019-06-19 22:36:26

标签: visual-studio dll mfc visual-studio-2019

我已从VS2015移至VS2019。我已经创建了一个部署,并且在本地良好,在这三台计算机上。但是,当我将测试MSI运送到旧笔记本电脑时,我们找不到MFC140.dll。我在我的一个dll中找到了依赖项,以为它与不将其移至UNICODE有关。做到了,它仍然取决于MFC140U.dll

我有

toolset       (VS 2019)vs142
SDK Version   10.0(latest installed)

我用Google搜索并拔出头发。但是灯没有亮。已检查,这也是我构建的第二个dll的情况。

因此,我检查了要部署的另一个应用程序。它不使用我的任何dll。但是,它也依赖于MFC140U.dll和MFC142U.dll。此链接中唯一链接的库是BOOST和SQLITE3。而且这些没有任何MFC依赖项。这只会增加我的困惑。

对我而言唯一有意义的是,vs142构建具有约140个依赖项,而部署系统并未对此有所帮助。请注意,部署并没有像vs2015那样使用install shield完成。

是的,我可以通过运送MFC140U.dll来修复它,但这似乎不正确。我能判断的只是我还是Microsoft出了问题。

更新:

我用VS2019创建了一个新的MFC项目,并研究了依赖项。同样,这与Microsoft有关。而且看起来部署系统包含MFC142x dll,但不包含必需的MFC140。

1 个答案:

答案 0 :(得分:2)

您没有提及您的“部署系统”是什么,所以我不确定您在这里使用的是什么安装程序技术。

但是您的应用程序或您的一个DLL依赖于MFC。如果不需要MFC,则需要在有问题的exe或dll上检查构建设置。另一个要检查的项目是您是否在项目中错误地包含了afx.h标头。 afx.h具有#pragma comment(lib,xxx)条目,这些条目可根据您的构建选项解析为正确的mfc140xxx.lib。

如果MFC依赖关系是合法的,则应使用为此目的而设计的vsredist软件包安装VC运行时组件。这些应该以类似于C:\ Program Files(x86)\ Microsoft Visual Studio \ 2019 \ Enterprise \ VC \ Redist \ MSVC \ 14.21.27702

的路径安装到硬盘上

或者,您可以使用以下链接下载最新版本:

The latest supported Visual C++ downloads

此致