После преобразования Гибридного приложения ASP.NET MVC1 к MVC2 я получаю следующую ошибку, когда я пытаюсь запустить приложение:
Имя типа или пространства имен 'Mvc' не существует в пространстве имен 'Система. Сеть' (Вы пропускаете ссылку на сборку?)
Предполагаемым преступником в web.config файле является Система. Сеть. Mvc:
<namespaces>
<add namespace="System.Web.Mvc"/>
<add namespace="System.Web.Mvc.Ajax"/>
<add namespace="System.Web.Mvc.Html"/>
До сих пор мое расследование, кажется, приводит меня верить той версии 2 Системы. Сеть. Mvc не установлен или не был взят.
Я попытался создать Файл> Новый Проект на основе MVC 2, и это берет новую (v2) версию MVC. Я также преобразовал некоторые другие проекты (которые не были гибридами), и они преобразовали без проблемы в MVC2.
Я также удалил MVC1, чтобы попытаться удалить ссылки на него от GAC. Однако ни одно из этого не работало.
Какие-либо идеи?
Убедитесь, что у вас есть перенаправление привязки в вашем Web.config:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Web.Mvc" />
</dependentAssembly>
</assemblyBinding>
</runtime>
Это заставляет MVC 2, даже если MVC 1 находится на машине.
Также: MVC 1 имеет пространство имен System.Web.Mvc
, поэтому убедитесь, что у вас также есть:
<assemblies>
<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>