我们开发了一个 C# 4.0 模块,需要从非托管 C++ 程序(以及 Fortran 程序)访问。 DLL 已正确加载,并且该方法可供 C++ 程序使用,但在调用指向 C# 代码的方法时会引发异常。对于可视化:
[Unmanaged C++ / Fortran Projects]
-> controller.dll (unmanaged C++ within the C++ project)
-> managed_wrapper.dll (managed C++ within the C# project)
-> C# 4.0 Project
当控制器尝试调用托管 C++(使用 .NET 4.0 框架)时,会引发异常。
我怀疑需要应用以下配置,因为我们之前在创建概念证明时遇到错误:
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
</configuration>
我正确地将其应用于上述概念验证,但那是在独立的控制台应用程序上。由于非托管 C++ 程序非常庞大,并且设置并非每个模块都通用,因此我无法使用上述配置创建
MyApplication.exe.config
文件并称之为日后。
我的问题是:是否可以将该配置应用于特定的 DLL?