【问题标题】:Migration to Visual Studio 2019 causes crashes for a WPF application迁移到 Visual Studio 2019 会导致 WPF 应用程序崩溃
【发布时间】:2020-01-16 14:16:22
【问题描述】:

Visual Studio 2017 迁移到 Visual Studio 2019 后,我遇到了 WPF 应用程序问题。 该应用程序由以下项目组成:

  1. MyProject-> 主 WPF 项目
  2. MyProject.Native -> 使用 OpenCV 的 C++ 项目
  3. MyProject.Managed -> 项目是 MyProject.Native 的包装器。

依赖流程为:MyProject -> MyProject.Managed -> MyProject.Native

MyProject.Native 的配置类型设置为 .libMyProject.Managed 的配置类型设置为 >.dll.

迁移到 Visual Studio 2019 后,我不得不将 Platform Toolset 更改为 Visual Studio 2019 (v142)。但是,这会导致一些崩溃,提示 MyProject.Managed.dllMyProject 中丢失。

实际错误是:System.IO.FileNotFoundException:无法加载文件或程序集“MyProject.Managed.dll”或其依赖项之一。找不到指定的模块。

查了一下,发现不是这样的。

我尝试过的事情:

  1. MyProject 中删除对 MyProject.Managed 的项目引用并重新添加;
  2. 清理/重建解决方案;
  3. 检查是否在MyProject.csproj中正确添加了依赖;
  4. 验证编译后输出目录中是否存在.dll文件;
  5. 编译整个解决方案后,验证MyProject的bin文件夹中是否存在.dll文件;
  6. MyProject.MangedReference Properties 中验证.dll 文件的Path 是否正确来自MyProject的参考;
  7. 验证复制本地是否设置为真;
  8. 检查解决方案配置解决方案平台是否设置正确。 (发布/x64)

注意事项:

  1. 如果应用程序在 Windows 10 环境中运行,则不会发生崩溃(但在 Windows 7Windows 8.1 上会发生)。
  2. 如果使用 Visual Studio 2017 编译,应用程序可以正常工作。

有没有人遇到过类似的问题?如果是这样,解决方法是什么?我错过了什么

【问题讨论】:

  • 你试过删除obj和bin目录并完全重建应用吗?
  • 也许 Win7 和 8.1 需要额外的运行时?像这样的东西:support.microsoft.com/en-us/help/2977003/…
  • @KevinCook 我已经试过了。
  • @Lennart 我刚刚这样做了,它似乎正在工作。我的安装程序附带的是 Visual C++ 2017。感谢您的帮助!

标签: .net wpf visual-studio


【解决方案1】:

Windows 7 和 8.1 似乎缺少最新的 Visual C++ (2019) 运行时。您可以从 Microsoft here 下载它们。

【讨论】:

    【解决方案2】:

    如果您可以使用 Visual Studio,请运行它并查看“模块”窗口并检查是否一切如您所愿。 如果您不能使用 VS,请使用 Dependency Walker 之类的软件。 Dependency Walker

    【讨论】:

    • 感谢您的建议。我使用了进程监视器,但没有得到任何东西。然而,DependencyWalker 显示我的 DLL 有问题,但它并没有指出我的错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-26
    • 1970-01-01
    • 2011-01-10
    • 2023-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多