Понизьте приложение от .net 4.0 до 3,5

Я разрабатывал приложение в 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, но это, кажется, не работает. Есть ли что-нибудь, что я могу сделать другой, который создает новое приложение?

10
задан Serge 5 July 2010 в 19:46
поделиться

2 ответа

Вы должны быть в состоянии заставить это работать с помощью настроек конфигурации в app.Config.

Просто добавьте флаг useLegacyV2RuntimeActivationPolicy="true" в appConfig в разделе startup. Это заставит среду выполнения .NET 4 работать со старыми сборками смешанного режима.

5
ответ дан 3 December 2019 в 22:34
поделиться

Откройте ваш .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>
8
ответ дан 3 December 2019 в 22:34
поделиться