Исключение Не удалось загрузить файл или сборку "System.Web.Mvc, Version = 4.0.0.1,
Возникает проблема - только когда я запрашиваю один контроллер -
Я получаю исключение:
Не удалось загрузить файл или сборку "System.Web.Mvc, Version = 4.0.0.1, Culture = neutral, PublicKeyToken = 31bf3856ad364e35" или одна из его зависимостей. Расположенное определение манифеста сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040
И это странно, потому что в моем файле конфигурации я вижу, что версия 4.0.0.0 и все остальные контроллеры в порядке, и только когда я загружаю приложение на сервер, это происходит.
Ответы
Ответ 1
Это известная проблема. Кажется, вы недавно перешли от 3.0 до 4.0, или это приложение представляет собой новый клон из репозитория. Один единственный контроллер может не восстановить nuget. Я также столкнулся с этой проблемой. Я получил ссылку msdn и просмотр у нее был решением. Ниже приведены указанные шаги.
Проблема может быть решена путем реализации одного из следующих решения:
-
(Предпочитаемый) Установите Microsoft.AspNet.Mvc из галереи NuGet (это установит перенаправление привязки в ваш web.config). Ты можешь сделать это из диспетчера пакетов NuGet или консоли NuGet внутри Visual Студия:
Установочный пакет Microsoft.AspNet.Mvc -Version -Project PROJECTNAME
Версия MVC 4: 4.0.40804.0
Версия MVC 3: 3.0.50813.1
-
Вручную обновите ссылку на System.Web.MVC.dll(не используйте тот, что есть в GAC).
Попробуйте добавить ссылку Добавить ссылку → Ассембли → Расширения.
В любом случае убедитесь, что свойство "Копировать локальное" для для сборки установлено значение true, поэтому оно заканчивается в вашей папке bin, которая необходимых для развертывания. Существует известная ошибка NuGet, которая сбрасывает копию Локальный флаг: https://nuget.codeplex.com/workitem/4344
Установить пакет Nuget Microsoft.AspNet.Mvc для всего проекта, ссылающегося на System.Web.Mvc dll. Надеюсь, что это решает вашу проблему.
Ответ 2
Я получил эту ошибку сборки в VSO-агенте, благодаря сбою ассемблера ASP.Net. Я изменил некоторые из своих конфигураций сборки, и Visual Studio изменила выходной каталог для проекта MVC на \bin\x86\Debug
или что-то подобное.
Это укусило меня раньше, и я вспомнил, что ASP.Net хочет быть только \bin
.
Поэтому, когда вы получаете какую-либо "ссылку не может быть найдена" во время сборки, не забудьте проверить, что ваш выходной каталог выдает только \bin
:
![введите описание изображения здесь]()
Подробнее о проблеме здесь:
Изменение выходного каталога для проекта asp.net в Visual Studio
Надеюсь, это поможет кому-то.
Ответ 3
Возможно, вы можете ссылаться на ASP.NET MVC как ссылку на GAC, но может случиться так, что разные разработчики имеют другую версию MVC.
Удалите ссылки на ASP: NET MVC и добавьте ASP.NET MVC как пакет nuget.