Ошибки сборки - конфликты "System.Web.Mvc.ModelClientValidationRule"

Я пытаюсь "создать" мое веб-приложение 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\Cab\Cab\Models\AccountModels.cs 223 28 Кабина

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

VS2010 error when opening solution

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

Кто-нибудь может предложить какие-либо рекомендации?

Спасибо Пол

Ответ 1

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

Edit:

ProjectName.csproj

Измените

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

Для

<Reference Include="System.Web.WebPages, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL "/>

Ответ 2

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

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

Ответ 3

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

Ответ 4

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

  • Перейти к редактору решений
  • Ссылка
  • Щелкните правой кнопкой мыши по System.Web.WebPages
  • Удалить

Теперь запустите приложение и наслаждайтесь!

Ответ 5

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

Вот как я смог это исправить:

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

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

    C:\Program Files (x86)\Microsoft ASP.NET\Веб-страницы ASP.NET\v2.0\Пакеты\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>