Ошибки сборки - конфликты 'System.Web.Mvc.ModelClientValidationRule' - PullRequest
23 голосов
/ 15 декабря 2011

Я пытаюсь «построить» мое веб-приложение MVC3 в VS2010, но постоянно получаю следующую ошибку:

Ошибка 2 Тип «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 \ v2.0 \ Assemblies \ System.Web.WebPages.dll' C: \ Users \ brownp \ Documents \ Visual Studio 2010 \ Projects \ Кабина \ Кабина \ Модели \ AccountModels.cs 223 28 Кабина

Кроме того, каждый раз, когда я открываю решение, оно предлагает мне следующее:

VS2010 error when opening solution

Я устанавливаю через установщик веб-платформы, и он успешно устанавливается, однако сообщение появляется каждый раз, когда я открываю решение.

Может ли кто-нибудь предложить какое-либо руководство?

Спасибо, Пол

Ответы [ 5 ]

44 голосов
/ 04 марта 2012

После установки бета-версии MVC4 сегодня некоторые из моих проектов MVC 3 не будут компилироваться.(Конфликт ModelClientValidationRule) Исправление:

Изменить:

ProjectName.csproj

Изменить

<Reference Include="System.Web.WebPages"/> 

На

<Reference Include="System.Web.WebPages, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL "/>
13 голосов
/ 13 марта 2012

Хорошо, попробуйте это решение ...

  1. В корневом файле 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

10 голосов
/ 07 февраля 2013

Удалить System.Web.WebPages из ссылок на решения.Это все.

3 голосов
/ 30 июля 2013

Лучший способ избежать этого конфликта -

  1. Перейти к обозревателю решений
  2. Ссылка
  3. Щелкните правой кнопкой мыши System.Web.WebPages
  4. Удалить

Запустите ваше приложение и наслаждайтесь!

0 голосов
/ 11 мая 2016

Эта проблема, аналогичная описанной вами в VS2010, возникла в моем случае в VS2015 с более новой версией MVC (V5).

Вот как мне удалось это исправить:

  • Обновите пакеты NUGET до последней версии.

  • В вашем проекте удалите ссылки на Microsoft.AspNet.WebPages.Затем повторно добавьте ссылку, используя последний пакет (используйте «Обзор ...»):

    C: \ Program Files (x86) \ Microsoft ASP.NET \ ASP.NET Web Pages \v2.0 \ Packages \ Microsoft.AspNet.WebPages.2.0.30506.0 \ lib \ net40

  • Убедитесь, что все проекты ссылаются на одну сборку, если нет, исправьте их какописано выше.Затем пересоберите решение.В моем случае это исправило ошибку.

Проверьте файл Web.config и исправьте настройки, такие как:

<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="true" />
...
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
  </dependentAssembly>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...