Я управлял C ++ Dll (скомпилирован с использованием опции clr), и я вызываю его из неуправляемого консольного приложения C ++. Он работает нормально, но он не работает в Windows 2012, где установлен .Net 4.5.
Я не установил .Net 3.5 на компьютере с Windows 2012. Я получаю приглашение, так как «следующая функция не может быть установлена на .NETframework 3.5.
Я следил за этим статья и создал файл конфигурации приложения 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.
<?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>