Вопрос по asp.net-mvc-4 – WebAPI RC 'System.Runtime.CompilerServices.ExtensionAttribute' из сборки 'mscorlib,
У меня есть приложение webapi под управлением .net4, которое я пытаюсь заставить работать на сервере. API хорошо работает локально.
Не удалось загрузить тип 'System.Runtime.CompilerServices.ExtensionAttribute' из сборки 'mscorlib, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = b77a5c561934e089'.
Что мне нужно изменить, чтобы заставить это работать на моем сервере?
от которых зависит ваш проект. У меня возникла та же проблема, и я обнаружил, что проблема связана с одной DLL. Эта DLL была более старой версией (скомпилированной для .NET 4.0) на моей локальной машине, где сайт нормально работал через localhost, но была более новой версией (скомпилированной для .NET 4.5) на работающем сервере, где произошел сбой сайта.
что компилировали против .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
ся в том, что на вашем сервере сборки нет эталонных сборок .net 4.0, после установки .net 4.5 вам нужно будет скопировать их из своего блока разработчика.
Обычно это где-то вроде:
C: \ Program Files (x86) \ Справочные сборки \ Microsoft \ Framework.NETFramework \ v4.0
Подробнее см. Пост в блоге Марка