"Эта сборка построена с помощью среды выполнения, более новой, чем текущая загруженная среда выполнения и не может быть загружена"
Я получаю сообщение об ошибке: "Эта сборка построена с помощью среды выполнения, более новой, чем текущая загруженная среда выполнения, и не может быть загружена".
У меня есть проект dll.NET 4.0, который вызывается проектом .NET 2.0. Есть ли способ примирить разницу в структуре?
Ответы
Ответ 1
У меня есть проект dll.NET 4.0, который вызывается проектом .NET 2.0. Есть ли способ примирить разницу в структуре?
Не так, кругом, нет..NET 4 CLR может загружать сборки .NET 2 (обычно - есть несколько исключений для сборщиков смешанного режима, IIRC), но не наоборот.
Вам нужно либо обновить проект .NET 2 до .NET 4, либо перевести проект .NET 4 на .NET 3.5 (или ранее).
Ответ 2
Я получил то же сообщение об ошибке. Я давал
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe
"C:\MyService\MyService.exe"
Вместо
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe
"C:\MyService\MyService.exe"
Ответ 3
Если вы уже пробовали все другие логические решения на этой странице, дважды проверьте это. В моем app.config у меня была ссылка на старую структуру.
<startup>
<supportedRuntime version="v2.0.50727"/>
</startup>
должно быть
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
Вкладка проекта правильно показала v4.0, но app.config не был привязан к нашему репо с этим изменением. Чтобы исправить это, я сменил фреймворк на что-то еще и снова на 4.0, обновив файл app.config.
Ответ 4
Поскольку только одна версия времени выполнения может быть загружена в процесс (хотя, как указывали другие, обратная загрузка - загрузка 4.0 - это нормально), у вас есть несколько вариантов:
- Обновите проект .Net 2.0
- Оберните проект .Net 2.0 (если источник не принадлежит вам)
- Снизьте проект .Net 4.0
- Загрузите проект .Net 4.0 в свой собственный процесс (я считаю, что это может сработать - но приложим немного усилий, IMO)
Ответ 5
Вам нужно либо обновить проект .NET 2 до .NET 4, либо перевести проект .NET 4 на .NET 3.5 (или ранее).
Как обновить версию .net? Я не уверен, где и что указать. Пожалуйста, помогите.
Изменить:
Я сам нашел ответ. Выберите проект, щелкните правой кнопкой мыши и выберите "Страницы свойств". Там вы можете выбрать версию фреймворка. или выберите проект и нажмите Shift + F4
Ответ 6
Интересно, что я продолжал получать эту ошибку. Для меня это создало конфигурацию gacutil.exe.config в том же каталоге, что и gacutil.exe. Содержимое конфигурации (текстовый файл):
<?xml version ="1.0"?> <configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<requiredRuntime safemode="true" imageVersion="v4.0.30319" version="v4.0.30319"/>
</startup> </configuration>
Я размещаю это здесь для справки и спрашиваю, знает ли кто, что на самом деле происходит под капотом. Я не утверждаю, что это "правильный" способ сделать это.
Ответ 7
Измените каталог INSTALL_UTIL_HOME
с C:\WINDOWS\Microsoft.NET\Framework\v2.0
на C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319
для установки службы. Эта ошибка в основном возникает при несовпадении версий.
Ответ 8
Я тоже получил эту ошибку, но проблема была в том, что я использовал более старую версию GACUTIL.EXE
.
Как только у меня была правильная GACUTIL
для последней версии .NET
, она работала нормально.
Ошибка вводит в заблуждение, потому что она похожа на DLL, которую вы пытаетесь зарегистрировать неправильно.
Ответ 9
Эта ошибка также может быть вызвана тем, что неверная версия платформы .NET выбрана как значение по умолчанию в IIS.
Нажмите на корневой каталог node в окне "Соединения" (слева), затем выберите "Изменить версию .NET Framework" в представлении "Действия" (справа), затем выберите соответствующую версию .NET из выпадающий список.
Ответ 10
Несоответствие версии .net DLL, поэтому попробуйте перейти в приложение app.config или web.config.
Как правило, они имеют более высокую структуру, чем ниже, потому что, когда мы добавляем системную DLL в более низкую версию встроенного приложения .net, поэтому она не будет работать, поэтому просто измените ее на более высокую версию
Ответ 11
Ошибка связана с тем, как я настроил пул приложений в IIS.
В моем веб-сервисе используется приложение, настроенное для v2.0.50727. Это привело к появлению сообщения об ошибке.
Когда я изменил его на v4.0.30319, я не получил ошибку.
Ответ 12
Когда я изменил рабочую версию .Net пула приложений, в котором размещался конкретный проект, я смог решить эту конкретную проблему.
Пул приложений → дополнительные настройки → рабочая версия фрейма .Net (изменено с v2.0 на v4.0)