Тип "ModelClientValidationRule" существует в обеих DLL

Я загрузил исходный код примера, написанного в 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

Ответы

Ответ 1

Просто удалите System.Web.WebPages из ссылок на решение

Ответ 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

ИЛИ ВЫ МОЖЕТЕ ТАКЖЕ ПОПРОБУЙТЕ ЭТО

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

Ответ 3

Щелкните правой кнопкой мыши имя проекта в VS2010. нажмите "Добавить разворачиваемые зависимости". Перестроить

Ответ 4

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>

Счастливое кодирование

Дэн Б.