Какая «дополнительная конфигурация» необходима для ссылки на сборку смешанного режима .NET 2.0 в проекте .NET 4.0? - PullRequest
515 голосов
/ 16 марта 2010

У меня есть проект, в котором я хотел бы использовать некоторые функции .NET 4.0, но основное требование заключается в том, что я могу использовать инфраструктуру System.Data.SQLite, скомпилированную с 2.X. Я вижу упоминание о том, что это возможно, например принятый ответ здесь , но я не вижу, как на самом деле этого добиться.

Когда я просто пытаюсь запустить свой проект 4.0 при ссылке на сборку 2.X, я получаю:

Сборка в смешанном режиме строится против версии 'v2.0.50727' среды выполнения и не может быть загружен во время выполнения 4.0 без дополнительных информация о конфигурации.

Какая «дополнительная конфигурация» необходима?

Ответы [ 16 ]

1 голос
/ 27 января 2016

У меня была эта проблема при обновлении до Visual Studio 2015, и ни одно из решений, опубликованных здесь, не имело никакого значения, хотя конфигурация верна, место для изменения - нет. Я исправил эту проблему, добавив эту конфигурацию:

<startup useLegacyV2RuntimeActivationPolicy="true">
</startup>

Кому: C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TestWindow \ TE.ProcessHost.Managed.exe.config

Затем перезапустил Visual Studio.

0 голосов
/ 27 декабря 2016

Добавьте следующее в этом месте C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.0A \ Bin \ NETFX 4.0 Tools \ x64 Имя файла: sgen.exe.config (Если вы не нашли этот файл, создайте идобавить один)

 <?xml version ="1.0"?>

<configuration>
 <runtime>        
        <generatePublisherEvidence enabled="false"/>    
    </runtime>

    <startup useLegacyV2RuntimeActivationPolicy="true">

                <supportedRuntime version="v4.0" />

    </startup>    

</configuration>

Это решило проблему

0 голосов
/ 15 августа 2016

Я столкнулся с подобной проблемой при переносе некоторого кода с VS 2008 на VS 2010 Внесение изменений в файл App.config решило проблему для меня.

<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0.30319"
         sku=".NETFramework,Version=v4.0,Profile=Client" />
</startup>
</configuration>
0 голосов
/ 26 ноября 2015

Я столкнулся с этой же ошибкой и потратил целую вечность, добавляя предложенные операторы запуска в различные файлы конфигурации в моем решении, пытаясь изолировать несоответствие платформы. Ничего не получалось. Я также добавил информацию о запуске в мои схемы XML . Это тоже не помогло. Глядя на фактический файл, который вызывал проблему (которая только сказала бы, что он был «перемещен или удален»), выяснилось, что это был фактически Компилятор лицензий (LC).

Удаление поврежденного файла licenses.licx, похоже, решило проблему.

0 голосов
/ 05 июля 2015

Также у меня была эта проблема с библиотекой классов, если у кого-то есть проблема с библиотекой классов, добавленной в ваше основное приложение. Просто добавьте

<startup useLegacyV2RuntimeActivationPolicy="true">

для вас основное приложение, которое затем будет выбрано библиотекой классов.

0 голосов
/ 28 декабря 2013

Я нашел способ обойти это после 3-4 часов поиска в Google. Я добавил следующее

<startup selegacyv2runtimeactivationpolicy="true">
  <supportedruntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client" />
</startup>

Если это не решит вашу проблему, то -> В ссылках проекта Right Click on DLL, где вы получаете ошибку -> Select Properties -> Check the Run-time Version -> Если это v2.0.50727, тогда мы знаем эта проблема. Проблема в следующем: - у вас 2.0 Version of respective DLL. Решение: - Вы можете delete the respective DLL из ссылок проекта, а затем download the latest version of DLL's с соответствующего веб-сайта и добавить ссылку на ссылку DLL последней версии, тогда она будет работать.

...