Сборка смешанного режима построена против версии "2.0.50727" среды выполнения и не может быть загружена во время выполнения 4.0

Я использую Visual Studio 2012 и .Net Framework 4.5 У меня есть 2 решения: 1) Приложение WPF 2) библиотека классов (dll)

библиотека классов содержит 3 кнопки и элемент управления, который должен находиться внутри элемента управления WindosFormsHost, поскольку он был создан для WinForms.

единственными ссылочными сборками вне .NET Framework являются вышеупомянутые элементы управления winforms и iTextSharp.

элемент управления winforms кажется старым, и когда я ставлю ссылка в моей dll я получил ту же ошибку, что и заголовок, но после других вопросов/ответов SO, я поместил это в свой конфигурационный файл:

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

ошибки:

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

Как я уже упоминал, я видел вопросы, публикующие эту проблему, и они решили проблему в моем проекте DLL, но в проект с использованием этой DLL я пробовал их все безрезультатно. Для справки:

  1. какая "дополнительная конфигурация" необходима для ссылки на сборку смешанного режима .NET 2.0 в проекте .NET 4.0?
  2. агрегат смешанного режима построен против версии ' v2.0.50727 ' времени выполнения
  3. что делает "useLegacyV2RuntimeActivationPolicy" в конфигурации .NET 4?
  4. агрегат смешанного режима построенный против версии ' v2.0.50727 ' среды выполнения и не может быть загружен в 4.0 runtime
  5. сборка смешанного режима построена против версии X и не может быть загружена в версии y среды выполнения без дополнительной информации о конфигурации

в этом проекте мой файл конфигурации имеет те же самые теги с теми же значениями.

также отметить, в моем приложении WPF, в начале я получал сообщение об ошибке о том, что он не может чтобы найти указанную dll (для элемента управления winforms), в конце концов я поместил dll этого элемента управления в GAC.

Я попытался изменить свою целевую платформу для всех возможностей (4.5, 4.0 full и client, 3.5 full и client, 3.0 и 2.0), построив мою DLL в debug и release и установив "Generate serialization assembly" в OFF, также изменил целевую платформу с любого процессора на x86 и x64. Я только попытался изменить значение одной настройки за раз.

это a проблема в VS2012 или что мне нужно сделать, чтобы решить эту проблему?

EDIT:

вышеуказанная ошибка отображается во время разработки в списке ошибок, конструктор показывает ошибку "не удается создать экземпляр "my_class""

внутреннее исключение этого говорит: "Set connectionId бросил исключение", и внутренним исключением этого является сообщение заголовка.

Это все еще позволяет создавать решение, и при запуске приложения I получите в основном то же самое, за исключением того, что самое внутреннее исключение говорит:

"не удалось загрузить файл или сборку" SigPlusNET, Version=1.1.3358.14336, Culture=neutral, PublicKeyToken=6aef07010bb0624f " или одну из его зависимостей. Была сделана попытка загрузить программу, имеющую неверный формат."

это сборка элемента управления winForms, при проверке через dotPeek, единственными зависимостями, которые он имеет, являются .NET Framework ones

3 ответов


работа с Bling для DirectX 10.0, (Bling UI Toolkit в CodePlex). Я получил ошибку, которая привела меня сюда на этой странице в поисках решения, приложения.файл config в D3D10.пример включал поддерживаемую среду выполнения, version=4 line. Но он не включает более позднюю строку для строки version=2 .net, используя приложение.config as:

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

решена проблема, и все примеры запускаются в VS2012 после изменения файла конфигурации в показанный код.

Я не знаю если этот пост опаздывает на ответ, я только начинаю в windows 7 и VS2012 в этом месяце в графическом проекте, и изменение конфигурации решило мою проблему.


Это может быть вызвано тем, что у вас есть 4.0 в 1 месте и 4.5 в другом на этой строке:

<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />

попробуй:

<supportedRuntime version="v4.5" sku=".NETFramework,Version=v4.5" />

или

<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />

мой подход был немного другой. Ошибка четко идентифицирует некоторые .NET 2.0.50727 компонент был включен в .NET 4.0 В Приложении.файл конфигурации вместо использования этого:

<startup useLegacyV2RuntimeActivationPolicy="true"> 

это решило мою проблему