【发布时间】:2020-01-16 14:16:22
【问题描述】:
从 Visual Studio 2017 迁移到 Visual Studio 2019 后,我遇到了 WPF 应用程序问题。 该应用程序由以下项目组成:
- MyProject-> 主 WPF 项目
- MyProject.Native -> 使用 OpenCV 的 C++ 项目
- MyProject.Managed -> 项目是 MyProject.Native 的包装器。
依赖流程为:MyProject -> MyProject.Managed -> MyProject.Native。
MyProject.Native 的配置类型设置为 .lib,MyProject.Managed 的配置类型设置为 >.dll.
迁移到 Visual Studio 2019 后,我不得不将 Platform Toolset 更改为 Visual Studio 2019 (v142)。但是,这会导致一些崩溃,提示 MyProject.Managed.dll 从 MyProject 中丢失。
实际错误是:System.IO.FileNotFoundException:无法加载文件或程序集“MyProject.Managed.dll”或其依赖项之一。找不到指定的模块。
查了一下,发现不是这样的。
我尝试过的事情:
- 从 MyProject 中删除对
MyProject.Managed 的项目引用并重新添加; - 清理/重建解决方案;
- 检查是否在MyProject.csproj中正确添加了依赖;
- 验证编译后输出目录中是否存在.dll文件;
- 编译整个解决方案后,验证MyProject的bin文件夹中是否存在.dll文件;
- 在MyProject.Manged 的Reference Properties 中验证.dll 文件的Path 是否正确来自MyProject的参考;
- 验证复制本地是否设置为真;
- 检查解决方案配置和解决方案平台是否设置正确。 (发布/x64)
注意事项:
- 如果应用程序在 Windows 10 环境中运行,则不会发生崩溃(但在 Windows 7 和 Windows 8.1 上会发生)。
- 如果使用 Visual Studio 2017 编译,应用程序可以正常工作。
有没有人遇到过类似的问题?如果是这样,解决方法是什么?我错过了什么
【问题讨论】:
-
你试过删除obj和bin目录并完全重建应用吗?
-
也许 Win7 和 8.1 需要额外的运行时?像这样的东西:support.microsoft.com/en-us/help/2977003/…
-
@KevinCook 我已经试过了。
-
@Lennart 我刚刚这样做了,它似乎正在工作。我的安装程序附带的是 Visual C++ 2017。感谢您的帮助!
标签: .net wpf visual-studio