создать c# .dll совместимый на .net3.5 и .net4.0 - PullRequest
1 голос
/ 06 января 2020

Мне нужно создать dll, написанную на c#. DLL должен использоваться на компьютерах двух разных типов: -MachineA, на котором установлен .net35, но не установлен .net40 -MachineB, на котором установлен бот .net40, но не установлен .net35 В настоящее время нет возможности установить .net35 на MachineB или установить .net40 на MachineA.

Я бы предположил, что создание библиотеки DLL на .net35 можно будет запустить на MachineB. Но когда я пытаюсь вызвать любую из функций dll, я получаю сообщение об ошибке, в котором говорится, что для установки приложения требуется .net35

. Поэтому возникает вопрос: можно ли создать dll таким образом, чтобы оно будет совместим как на MachineA, так и на MachineB?

1 Ответ

2 голосов
/ 06 января 2020

Вы можете настроить приложение для работы в обеих версиях. NET (3.5 и 4.0), добавив несколько значений supportedRuntime в app.config файл

<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> 
    <supportedRuntime version="v2.0.50727"/>
  </startup>
</configuration>

. NET Framework 4 и позже использует v4.0 время выполнения,. NET Framework 2.0, 3.0 и 3.5 использует v2.0.50727 время выполнения. Кроме того, поскольку вы нацеливаетесь на старый. NET 3.5, имеет смысл включить старую политику активации во время выполнения , useLegacyV2RuntimeActivationPolicy="true".

В приведенной выше конфигурации выполняется ваш код. NET 3.5, если установлена ​​только эта версия. В случае установки обеих версий он будет работать на. NET 4.x

Йо также может взглянуть на эту статью MSDN для получения более подробной информации

...