Сборка смешанного режима построена на версии 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
  5. Сборка смешанного режима построена для версии X и не может быть загружена в версии Y среды выполнения без дополнительной информации о конфигурации

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

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

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

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

РЕДАКТИРОВАТЬ:

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

Внутреннее исключение этого говорит: "Установить connectionId выдал исключение", а внутреннее исключение это заголовочное сообщение.

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

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

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

3 ответа

Решение

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

<?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 в этом месяце на графическом проекте, и изменение конфигурации решило мою проблему.

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

<startup useLegacyV2RuntimeActivationPolicy="true"> 

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

Это может быть вызвано тем, что у вас есть 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" />
Другие вопросы по тегам