Ответ 1
Просто удалите System.Web.WebPages из ссылок на решение
Я загрузил исходный код примера, написанного в asp.net mvc3 visual studio 2010
Открыть файл решения visual studio 2012. Он скрывает исходный код до 2012 года и открывает решение.
Когда я создаю решение, получилась ошибка:
Ошибка 1 Тип "System.Web.Mvc.ModelClientValidationRule" существует в оба: c:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies\System.Web.Mvc.dll 'и' c:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v2.0\Assemblies\System.Web.WebPages.dll 'C:\studyCode\MVCDemo-Part12\MVCDemo-Part12\MVCDemo\Attributes\Validation\EqualAttribute.cs 54 28 MVCDemo
Просто удалите System.Web.WebPages из ссылок на решение
Эти ответы могут также решить вашу проблему:
В корневом файле Web.config добавьте новую запись с ключом webPages: Version и значением 1.0.0.0.
<appSettings>
<add key="webpages:Version" value="1.0.0.0"/>
<add key="webpages:Version" value="1.0.0.0"/>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>
2.In Solution Explorer, right-click the project name and then select Unload Project. Then right-click the name again and select Edit ProjectName.csproj.
3.Locate the following assembly references:
<Reference Include="System.Web.WebPages"/>
<Reference Include="System.Web.Helpers" />
Замените их следующим образом:
<Reference Include="System.Web.WebPages, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL "/>
<Reference Include="System.Web.Helpers, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL "/>
4. Сохраните изменения, закройте файл проекта (.csproj), который вы редактировали, затем щелкните правой кнопкой мыши проект и выберите "Обновить".
ССЫЛКА: http://forums.asp.net/t/1723108.aspx/1
также попробуйте: http://www.asp.net/learn/whitepapers/mvc4-release-notes#_Toc303253815
ИЛИ ВЫ МОЖЕТЕ ТАКЖЕ ПОПРОБУЙТЕ ЭТО
Edit:
ProjectName.csproj
Измените
<Reference Include="System.Web.WebPages"/>
Для
<Reference Include="System.Web.WebPages, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL "/><br/><br/>
Примечание: ВОЗМОЖНАЯ ДУБЛИКЦИЯ ЭТОГО QUESTION
Щелкните правой кнопкой мыши имя проекта в VS2010. нажмите "Добавить разворачиваемые зависимости". Перестроить
http://www.asp.net/whitepapers/mvc4-release-notes
См. эту ссылку с известными ошибками при обновлении с MVC 3 до MVC 4:
Следуйте инструкциям, и вы должны работать в считанные минуты.
FYI. Если вы загрузили zip файл из Интернета, щелкните правой кнопкой мыши на файле (файлах), нажмите "Свойства" и выберите "Разблокировать" перед распаковкой или у вас будет боль.
Я добавил Примечания. Остальное - с сайта, на который ссылаются выше, с известными ошибками при обновлении с MVC3 до 4:
*** Автоматическое обновление *** Обновление проекта ASP.NET MVC 3 для ASP.NET MVC 4 ASP.NET MVC 4 может быть установлен рядом с ASP.NET MVC 3 на том же компьютере, что дает вам гибкость при выборе, когда нужно обновить приложение ASP.NET MVC 3 до ASP.NET MVC 4.
Самый простой способ обновления - создать новый проект ASP.NET MVC 4 и скопировать все представления, контроллеры, коды и файлы контента из существующего проекта MVC 3 в новый проект, а затем обновить ссылки на сборку в новый проект для соответствия любому шаблону, отличному от MVC, включает в себя собранные вами сборки. Если вы внесли изменения в файл Web.config в проекте MVC 3, вы также должны объединить эти изменения в файл Web.config в проекте MVC 4.
*** MANUAL Upgrade ****** Чтобы вручную обновить существующее приложение ASP.NET MVC 3 до версии 4, выполните следующие действия:
Во всех файлах Web.config в проекте (есть один в корне проекта, один в папке "Представления" и один в папке "Представления" для каждой области вашего проекта), замените каждый экземпляр следующего текста (примечание: System.Web.WebPages, Version = 1.0.0.0 не найдено в проектах, созданных с помощью Visual Studio 2012): System.Web.Mvc, версия = 3.0.0.0 System.Web.WebPages, Версия = 1.0.0.0 System.Web.Helpers, Version = 1.0.0.0 System.Web.WebPages.Razor, Version = 1.0.0.0
со следующим соответствующим текстом:
System.Web.Mvc, Version=4.0.0.0
System.Web.WebPages, Version=2.0.0.0
System.Web.Helpers, Version=2.0.0.0
System.Web.WebPages.Razor, Version=2.0.0.0
ПРИМЕЧАНИЕ. "Веб-страницы: Версия" вообще не были в моих настройках... Я добавил только строку "PreserveLoginUrl" *
В корневом файле Web.config обновите элемент webPages: Version до "2.0.0.0" и добавьте новый ключ PreserveLoginUrl, который имеет значение "true":
В обозревателе решений щелкните правой кнопкой мыши ссылку и выберите "Управление пакетами NuGet". На левой панели выберите официальный источник пакета Online\NuGet, а затем обновите следующее: ASP.NET MVC 4 (Необязательно) jQuery, проверка jQuery и пользовательский интерфейс jQuery (Необязательно) Entity Framework (Optonal) Modernizr
Это до тех пор, пока я должен был запустить свою версию... **
В обозревателе решений щелкните правой кнопкой мыши имя проекта и выберите "Выгрузить проект". Затем щелкните правой кнопкой мыши имя еще раз и выберите "Редактировать имя_проекта .csproj". Найдите элемент ProjectTypeGuids и замените {E53F8FEA-EAE0-44A6-8774-FFD645390401} на {E3E379DF-F4C6-4180-9B81-6769533ABE47}. Сохраните изменения, закройте файл проекта (.csproj), который вы редактировали, щелкните правой кнопкой мыши проект и выберите "Обновить проект". Если проект ссылается на любые сторонние библиотеки, которые скомпилированы с использованием предыдущих версий ASP.NET MVC, откройте корневой файл Web.config и добавьте следующие три элемента bindingRedirect в разделе конфигурации:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers"
publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc"
publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="4.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages"
publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
Счастливое кодирование
Дэн Б.