打开 CLR 支持导致 System.IO.FileLoadException

Turning on CLR support is causing System.IO.FileLoadException

我有一个大型遗留 C++/MFC 应用程序,它正在通过 C# class 库进行扩展。为此有一个 C++/CLI 包装器,因此遗留程序不需要打开 CLR 支持,但是在 运行 本机项目时无法通过托管代码进行调试。

打开 CLR 支持会导致 System.IO.FileLoadException 立即在 运行 程序上抛出。但是,关闭该设置后,程序会按预期运行,我只是无法在 Visual Studio 调试器中单步执行 DLL 代码。

我知道这与代码中的问题无关。我在 Visual Studio 2017 中完美运行,但由于各种原因我需要在 VS 2012 中运行它。

编辑以添加例外文本:

An unhandled exception of type 'System.IO.FileLoadException' occurred in 
Unknown Module.

Additional information: Could not load file or assembly '<Project>, 
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. Could not find or load a type. (Exception from HRESULT: 0x80131522)

使用 /GF 开关编译 DLL/executable。 转到项目属性和

C/C++->代码生成->启用字符串池-设置为“是”

从 MSDN 论坛复制

https://social.msdn.microsoft.com/Forums/vstudio/en-US/1c9c687f-4221-4cdd-8497-dd3bba97de6a/systemiofileloadexception-when-starting-an-mfc-application-parially-compiled-with-clr?forum=vcgeneral