Следующая функция не может быть установлена ​​на .NETframework 3.5

Я управлял C ++ Dll (скомпилирован с использованием опции clr), и я вызываю его из неуправляемого консольного приложения C ++. Он работает нормально, но он не работает в Windows 2012, где установлен .Net 4.5.

Я не установил .Net 3.5 на компьютере с Windows 2012. Я получаю приглашение, так как «следующая функция не может быть установлена ​​на .NETframework 3.5.

  1. Приложение Win32C ++
  2. ManagedDll

Я следил за этим статья и создал файл конфигурации приложения ManagedDll.dll.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0"/>
<supportedRuntime version="v2.0.50727"/>
</startup>
</configuration>

Это не работает, и загрузка DLL завершается с ошибкой окна 1114 / ERROR_DLL_INIT_FAILED.

Должно работать без установки .Net 3.5. Нужно ли устанавливать Net3.5 в Window 2012machine?

Можно ли использовать файл конфигурации приложения для DLL?

UPDATED1:

Я попробовал с простым управляемым приложением c ++ вместе с файлом конфигурации приложения, проблема остается.

NetSample1.exe
NetSample1.exe.config

UPDATED2

Я пробовал C # windows form application. Он не работал без app.exe.config и работает с app.exe.

Теперь кажется, что файл конфигурации вообще не используется при загрузке DLL.

0

Решение

Ссылка на сайт

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v2.0"/>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration>
0

Другие решения