Мы разработали модуль C # 4.0, к которому нужно обращаться из неуправляемой программы C ++ (а также из программы на Фортране). 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 framework).
Я подозреваю, что необходимо применить следующую конфигурацию, так как ранее мы сталкивались с ошибкой, когда создавал подтверждение концепции :
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
</configuration>
Я применил его правильно для вышеупомянутого доказательства концепции, но это было на автономном консольном приложении. Поскольку неуправляемая программа C ++ огромна, а настройки не являются универсальными для каждого модуля, я не могу создать файл MyApplication.exe.config
с вышеуказанной конфигурацией и назвать его day.
У меня такой вопрос: возможно ли применить эту конфигурацию к определенной DLL?