Имя типа или пространства имен 'Mvc' не существует в пространстве имен 'Система. Сеть'

После преобразования Гибридного приложения 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. Однако ни одно из этого не работало.

Какие-либо идеи?

9
задан Guy 22 April 2010 в 04:09
поделиться

1 ответ

Убедитесь, что у вас есть перенаправление привязки в вашем 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"/>
9
ответ дан 3 November 2019 в 00:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: