使用 Visual Studio 2019 构建但越来越依赖 MFC140U.dll
building with Visual Studio 2019 but getting depend on MFC140U.dll
我已经从 VS2015 迁移到 VS2019。我已经创建了一个部署,并且在本地一切都很好,在三台机器上。但是,当我将测试 MSI 运送到一台旧笔记本电脑时,我们发现 MFC140.dll 未找到。我在我的一个 dll 中发现了依赖关系,认为它与没有将它移动到 UNICODE 有关。这样做了,它仍然取决于 MFC140U.dll
我有
toolset (VS 2019)vs142
SDK Version 10.0(latest installed)
我用谷歌搜索并拔掉了头发。但是灯没有亮。检查过,这也发生在我构建的第二个 dll 上。
所以我检查了另一个进入部署的应用程序。它不使用我的任何 dll。然而它也依赖于 MFC140U.dll 和 MFC142U.dll。在这一个中唯一链接的库是 BOOST 和 SQLITE3。并且那些没有任何 MFC 依赖项。这只会增加我的困惑。
对我来说唯一有意义的是 vs142 构建有大约 140 个依赖项并且部署系统没有选择它。请注意,部署不像 vs2015 那样使用 install shield 完成。
是的,我可以通过发送 MFC140U.dll 来修复它,但这似乎不对。我能想到的要么是我,要么是微软有问题。
更新:
我用 VS2019 创建了一个新的 MFC 项目并查看了依赖项。同样,这是关于微软的。看起来部署系统包括 MFC142x dll,但不包括所需的 MFC140。
你没有提到你的 "deployment system" 是什么,所以我不确定你在这里使用的是什么安装程序技术。
但是您的应用程序或您的某个 DLL 依赖于 MFC。如果不需要 MFC,您需要检查有关 exe 或 dll 的构建设置。另一个要检查的项目是您是否在项目中错误地包含了 afx.h header。 afx.h 有 #pragma comment(lib, xxx) 条目,根据您的构建选项解析为正确的 mfc140xxx.lib。
如果 MFC 依赖项是合法的,您应该使用专门为此目的设计的 vsredist 包安装 VC 运行时组件。这些应该安装到您的硬盘驱动器,路径类似于 C:\Program Files (x86)\Microsoft Visual Studio19\Enterprise\VC\Redist\MSVC.21.27702
或者,您可以使用以下 link 下载最新版本:
The latest supported Visual C++ downloads
此致,
我已经从 VS2015 迁移到 VS2019。我已经创建了一个部署,并且在本地一切都很好,在三台机器上。但是,当我将测试 MSI 运送到一台旧笔记本电脑时,我们发现 MFC140.dll 未找到。我在我的一个 dll 中发现了依赖关系,认为它与没有将它移动到 UNICODE 有关。这样做了,它仍然取决于 MFC140U.dll
我有
toolset (VS 2019)vs142
SDK Version 10.0(latest installed)
我用谷歌搜索并拔掉了头发。但是灯没有亮。检查过,这也发生在我构建的第二个 dll 上。
所以我检查了另一个进入部署的应用程序。它不使用我的任何 dll。然而它也依赖于 MFC140U.dll 和 MFC142U.dll。在这一个中唯一链接的库是 BOOST 和 SQLITE3。并且那些没有任何 MFC 依赖项。这只会增加我的困惑。
对我来说唯一有意义的是 vs142 构建有大约 140 个依赖项并且部署系统没有选择它。请注意,部署不像 vs2015 那样使用 install shield 完成。
是的,我可以通过发送 MFC140U.dll 来修复它,但这似乎不对。我能想到的要么是我,要么是微软有问题。
更新:
我用 VS2019 创建了一个新的 MFC 项目并查看了依赖项。同样,这是关于微软的。看起来部署系统包括 MFC142x dll,但不包括所需的 MFC140。
你没有提到你的 "deployment system" 是什么,所以我不确定你在这里使用的是什么安装程序技术。
但是您的应用程序或您的某个 DLL 依赖于 MFC。如果不需要 MFC,您需要检查有关 exe 或 dll 的构建设置。另一个要检查的项目是您是否在项目中错误地包含了 afx.h header。 afx.h 有 #pragma comment(lib, xxx) 条目,根据您的构建选项解析为正确的 mfc140xxx.lib。
如果 MFC 依赖项是合法的,您应该使用专门为此目的设计的 vsredist 包安装 VC 运行时组件。这些应该安装到您的硬盘驱动器,路径类似于 C:\Program Files (x86)\Microsoft Visual Studio19\Enterprise\VC\Redist\MSVC.21.27702
或者,您可以使用以下 link 下载最新版本:
The latest supported Visual C++ downloads
此致,