Снизьте приложение с .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
Открыть свойства проекта. Затем выберите Ресурсы. Удалите все изображения ресурсов и вставьте их снова. теперь скомпилируйте его. Теперь ваш проект работает.:)