Сборка смешанного режима построена на версии 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, я попробовал их все безрезультатно. Для справки:
- Какая "дополнительная конфигурация" необходима для ссылки на сборку смешанного режима.NET 2.0 в проекте.NET 4.0?
- Сборка в смешанном режиме строится против версии v2.0.50727 среды выполнения.
- Что делает useLegacyV2RuntimeActivationPolicy в конфигурации.NET 4?
- Сборка в смешанном режиме строится против версии v2.0.50727 среды выполнения и не может быть загружена во время выполнения 4.0
- Сборка смешанного режима построена для версии 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" />