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

Ответ 1

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

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

Ответ 2

Откройте файл .resx с помощью редактора XML вместо редактора ресурсов и выполните поиск System.Windows.Forms, Version=4.0.0.0. Должно быть два экземпляра этой строки. Замените 4.0.0.0 на 2.0.0.0 и сохраните файл. Теперь ваши ресурсы должны работать правильно.

Обратите внимание, что вы также можете вернуться к .NET 4 и попытаться добавить в свой App.config следующий код, чтобы позволить старым сборкам запускаться в новой среде выполнения:

<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
  </startup>
</configuration>

Ответ 3

Открыть свойства проекта. Затем выберите Ресурсы. Удалите все изображения ресурсов и вставьте их снова. теперь скомпилируйте его. Теперь ваш проект работает.:)