Вопрос по asp.net-mvc-4 – WebAPI RC 'System.Runtime.CompilerServices.ExtensionAttribute' из сборки 'mscorlib,

4

У меня есть приложение webapi под управлением .net4, которое я пытаюсь заставить работать на сервере. API хорошо работает локально.

Не удалось загрузить тип 'System.Runtime.CompilerServices.ExtensionAttribute' из сборки 'mscorlib, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = b77a5c561934e089'.

Что мне нужно изменить, чтобы заставить это работать на моем сервере?

Разве это не новое в 4.5? Если это так, установите 4.5 на сервере. leppie
Этот тип существует с .NET 3.5 (msdn.microsoft.com/en-us/library/…) поэтому версия фреймворка, скорее всего, не является проблемой (если на сервере фактически не установлено .NET 4). Получаете ли вы трассировку стека вместе с этим исключением? marcind
Приложение работает только с .net4. Если я смогу уйти без необходимости устанавливать 4.5 на сервер, я бы не стал его устанавливать Diver Dan
Спасибо Леви, в итоге я установил .net4.5 framework поверх .net, и это решило мою проблему Diver Dan
У нас были разрозненные сообщения об этом, но мы не смогли получить живое воспроизведение. Если вы можете по электронной почтеboth проектand двоичный файл, полученный в результате компиляции для нас, мы будем очень признательны. Мой электронный адрес [email protected] Levi

Ваш Ответ

5   ответов
0

System.Runtime.CompilerServices.ExtensionAttribute.

Решение Удалите ссылки на проекты, ссылки на Framework 4.5, потому что в моем случае, так как я не устанавливал эту Framework.

0

от которых зависит ваш проект. У меня возникла та же проблема, и я обнаружил, что проблема связана с одной DLL. Эта DLL была более старой версией (скомпилированной для .NET 4.0) на моей локальной машине, где сайт нормально работал через localhost, но была более новой версией (скомпилированной для .NET 4.5) на работающем сервере, где произошел сбой сайта.

8

что компилировали против .NET 4, а не .NET 4.5? Мы переместили ExtensionAttribute в mscorlib в .NET 4.5 (чтобы мы могли поместить методы расширения в mscorlib). Я ожидаю увидеть такую ошибку, если вы скомпилируете что-то для .NET 4.5 и попытаетесь запустить его на .NET 4.

EDIT: На самом деле, если вы используете ILMerge, вам нужно использовать путь к ссылочным сборкам .NET 4.0 в переключателе targetplatform вместо пути к реализации, как описано в этом сообщении в блоге:http: //www.mattwrock.com/post/2012/02/29/What-you-should-know-about-running-ILMerge-on-Net-45-Beta-assemblies-targeting-Net-40.aspx

1

ся в том, что на вашем сервере сборки нет эталонных сборок .net 4.0, после установки .net 4.5 вам нужно будет скопировать их из своего блока разработчика.

Обычно это где-то вроде:

C: \ Program Files (x86) \ Справочные сборки \ Microsoft \ Framework.NETFramework \ v4.0

Подробнее см. Пост в блоге Марка

0

и она была устранена путем создания нового пула приложений для моего сайта после установки .NET Framework 4.5

Или просто: aspnet_regiis -i в консоли администратора после обновления фреймворка на сервере. Alexander Schmidt

Похожие вопросы