WebAPI RC 'System.Runtime.CompilerServices.ExtensionAttribute' из сборки 'mscorlib,

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

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

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

 leppie05 июн. 2012 г., 14:04
Разве это не новое в 4.5? Если это так, установите 4.5 на сервере.
 marcind05 июн. 2012 г., 17:41
Этот тип существует с .NET 3.5 (msdn.microsoft.com/en-us/library/…) поэтому версия фреймворка, скорее всего, не является проблемой (если на сервере фактически не установлено .NET 4). Получаете ли вы трассировку стека вместе с этим исключением?
 Diver Dan05 июн. 2012 г., 14:08
Приложение работает только с .net4. Если я смогу уйти без необходимости устанавливать 4.5 на сервер, я бы не стал его устанавливать
 Diver Dan06 июн. 2012 г., 09:20
Спасибо Леви, в итоге я установил .net4.5 framework поверх .net, и это решило мою проблему
 Levi06 июн. 2012 г., 05:18
У нас были разрозненные сообщения об этом, но мы не смогли получить живое воспроизведение. Если вы можете по электронной почтеboth проектand двоичный файл, полученный в результате компиляции для нас, мы будем очень признательны. Мой электронный адрес [email protected]

Ответы на вопрос(5)

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

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

System.Runtime.CompilerServices.ExtensionAttribute.

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

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

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

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

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

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

что компилировали против .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

Ваш ответ на вопрос