следующую функцию не удалось установить в .NETframework 3.5

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

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

  1. Приложение Win32С++
  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 на машину с Windows 2012?

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

ОБНОВЛЕНО1:

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

NetSample1.exe
NetSample1.exe.config

ОБНОВЛЕНО2

Я попробовал приложение Windows Forms на С#. Оно не работало без app.exe.config и работает с app.exe.

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


person Chris_vr    schedule 30.06.2014    source источник
comment
Разве 3.5 не должна быть установлена ​​на Windows Server 2012 автоматически...?   -  person Thorsten Dittmar    schedule 30.06.2014
comment
Нет, он не будет установлен. Однако его можно установить, установив флажок в поле «Включить / выключить программу Windows».   -  person Chris_vr    schedule 30.06.2014
comment
А, точно, его нужно установить как Feature, я помню. Есть ли какая-то особая причина, по которой вы не хотите этого делать?   -  person Thorsten Dittmar    schedule 30.06.2014
comment
@ThorstenDittmar Приложение будет передано пользователю. Мы хотим, чтобы пользователь не делал таких вещей. На самом деле конфигурация приложения должна делать это автоматически. Я не знаю, правильно ли соглашение об именах для файла конфигурации или нет.   -  person Chris_vr    schedule 30.06.2014


Ответы (1)


Ссылка

<?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>
person Chris_vr    schedule 01.07.2014