Я разрабатывал приложение в VS2010 и компилировал его для.NET 4.0 как целевая платформа. После интеграции библиотеки в мое приложение я получаю следующее сообщение об ошибке, когда я пытаюсь скомпилировать:
Сборка смешанного режима создается против версии 'v1.1.4322' времени выполнения и не может быть загружена в 4,0 временах выполнения без дополнительной конфигурационной информации.
Библиотека хорошо работает под.NET 3.5, но когда я изменяю свою целевую платформу на.NET 3.5, я получаю следующую ошибку для всех своих .resx файлов:
Ошибка 1 Ссылка на объект не набор к экземпляру объекта.
Я попробовал ctrl-h Version=4.0.0.0 к Version=3.5.0.0, но это, кажется, не работает. Есть ли что-нибудь, что я могу сделать другой, который создает новое приложение?
Вы должны быть в состоянии заставить это работать с помощью настроек конфигурации в app.Config.
Просто добавьте флаг useLegacyV2RuntimeActivationPolicy="true"
в appConfig в разделе startup. Это заставит среду выполнения .NET 4 работать со старыми сборками смешанного режима.
Откройте ваш .resx файл с помощью XML редактора вместо редактора ресурсов и найдите System.Windows.Forms, Version=4.0.0.0
. Должно быть 2 экземпляра этой строки. Замените 4.0.0.0
на 2.0.0.0
и сохраните файл. Теперь ваши ресурсы должны работать правильно.
Обратите внимание, что вы также можете вернуться к .NET 4 и попробовать добавить следующее в App.config, чтобы старые сборки могли работать на новой среде исполнения:
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
</configuration>