Ошибки сборки - конфликты "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>