如何运行降级到 .Net 4.0 的混合 C#/CLR/C++ 解决方案

本文关键字:混合 C++ CLR 解决方案 Net 何运行 运行 降级 | 更新日期: 2023-09-27 18:34:25

我有混合项目的解决方案:C#,本机C++和CLR/C++(这也需要一些外部DLL(。当我使用VS 2012的默认设置并针对.Net 4.5时,它工作正常。但后来我不得不将其降级到 .Net 4.0。

我通过仅针对 32 位构建解决方案并强制 C# 主项目也为 32 位构建(通常 C# 用于"任何 CPU"(来取得成功。

有了这样的设置,我可以在 2 台计算机中的 3 台计算机上运行良好,用于测试——这意味着它失败了。它声称它无法加载 CLR/C++ 项目或其中一个依赖项。

所以我的问题是如何运行它或至少知道到底失败了什么?从已安装程序列表中,我可以看到在工作计算机上我有.Net 4.5多目标,或者我根本没有.Net 4.5(只有4.0(。在失败的计算机上,我有.Net 4.5(句点(。所以也许我的程序尝试从 .Net 4.5 而不是 4.0 加载一些程序集?但这只是猜测。

问题 - 如何诊断这种扭曲的解决方案以及如何解决它?

如何运行降级到 .Net 4.0 的混合 C#/CLR/C++ 解决方案

  1. 安装 .Net 框架 4.0 多目标包
  2. 检查引用(包括 NuGet,如果有(

当我遇到类似的问题时,我通常会检查以下内容:

  1. 您是否在这三台计算机上安装了Visual Studio我想它安装在运行应用程序的两个上。如果是这样,我稍后会扩展列表。

  2. 检查C++/CLI项目的目标 - 如果您为 32 位构建,则应Win32目标。

  3. 在没有Visual Studio的情况下运行应用程序,等到它失败并转到Event Viewer在那里查找一些有用的信息。

  4. 获取Process Monitor ,在没有Visual Studio的情况下运行应用程序,等到它失败,停止监视并按应用程序名称和失败的操作过滤列表,并在那里查找一些有用的信息。