2015-06-26 4 views
1

У меня есть одно приложение ASP.NET MVC с .NET Framework 4.0. Теперь в локальном я меняю версию MVC на 2.0.0.0 на 3.0.0.0 и развертываю на сервере, и я обнаружил, что проект не успешно развертывается. Когда я вижу, регистратор событий я обнаружил следующую ошибкуНе удалось загрузить файл или сборку «System.Web.Mvc, Version = 3.0.0.0 на сервере

«Сообщение об исключении: C: \ Apps \ Test \ WebUI \ Web.config (105): ошибка CS0234: тип или пространство имен 'Mvc' не существует в пространстве имен «System.Web» (это пропущена ссылка на сборку?)»

Когда я вижу мой web.config файл я нашел

<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 

<runtime> 

    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 

    </runtime> 

Поиск этой ошибки и Ставить

<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" /> 

to 

<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> 
also try this 
<bindingRedirect oldVersion="1.0.0.0-3.0.0.1" newVersion="3.0.0.1" /> 

но такая же ошибка возникает. Также я вижу окна/сборку, и здесь присутствует только system.web.mvc 2.0.0.0, хотя установлен MVC 3.

Пожалуйста, дайте мне правильное решение для этого.

+0

У вас есть эта сборка в папке с bin? В какой версии? – Kamo

+0

№. Я добавил в качестве ссылки в моем проекте, но в папке bin я не смог найти эту сборку. –

+0

Проверьте мой ответ. – Kamo

ответ

0

Добавить ссылку на system.web.mvc и если это не в контрольном списке убедитесь, что цель проекта рамки 4,5

+0

Я уже добавляю эту ссылку в свой проект –

0

Вы должны иметь эту нужную сборку в папку bin. Если это не так после сборки, просто зайдите в свой проект -> Ссылка -> Найти System.Web.Mvc -> Щелкните правой кнопкой мыши -> Свойства -> Копировать локальную, следует установить на true.

Без этой установки сборка не будет скопирована в папку приложения, в результате чего вы сообщите об этом.

enter image description here

+0

Я не могу найти локальный вариант копирования после щелчка правой кнопкой мыши на этом. –

+0

@KinjalPatel - вы открыли окно «Свойства» для справки? – Kamo

+0

Я пробовал только после щелчка правой кнопкой мыши. Я получил его :) –

0

В обозревателе решений:

  • Разверните папку Ссылки.
  • Щелкните правой кнопкой мыши ссылку System.Web.Mvc.
  • Выберите «Свойства».
  • Измените значение «Скопировать местное» на true.
  • Перестроить.
  • Redeploy.

Возможно, вам придется сделать это для нескольких сборок, если я правильно помню некоторые из моментов разработки PIA MVC3. У Фила Хаака есть список on his blog, если вы хотите сэкономить время на выяснение того, что нужно отрегулировать. Для полноты картины, вот список:

  • Microsoft.Web.Infrastructure.dll
  • System.Web.Helpers.dll
  • System.Web.Mvc.dll
  • System.Web.Razor.dll
  • System.Web.WebPages.Deployment.Dll
  • System.Web.WebPages.dll
  • System.Web.WebPages.Razor.dll

Старые версии инструментов в Visual Studio не установить свойство "Copy Local" в true, который добавит его в ваш каталог \bin.

0

Я использую VS 12 и нашел рекомендацию установить VS 2015 с помощью WEB-инструментария. Имя установочного файла - VS2015CommunityAzurePack. Не делайте этого, если вы используете VS 12. У меня много проблем, и для его исправления потребовалось довольно много времени. Когда вы меняете свои ссылки на «copy local = true», делайте это только для ссылок System.Web.