我的视图页面出错,所以我将视觉工作室更新为mvc4,不过我正在使用mvc3。我第一次使用NuGet进行了更新,但它不能正常工作,我通过独立的MVC4进行了更新。所以它奏效了。但是,当我尝试运行MVC3项目时,它给了我以下错误:
CS1705:程序集'MVC3Project,Version = 1.0.0.0,Culture = neutral, PublicKeyToken = null'使用'System.Web.Mvc,Version = 4.0.0.0, Culture = neutral,PublicKeyToken = 31bf3856ad364e35'哪个更高 版本比引用程序集'System.Web.Mvc,Version = 3.0.0.0, Culture = neutral,PublicKeyToken = 31bf3856ad364e35'
任何人都可以帮我吗?
答案 0 :(得分:4)
在Views文件夹中的web.config文件中,system.web.webPages.razor下有host元素
对于MVC3项目,这应该如下:
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
对于MVC4,它是:
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
您还需要检查MVC3的页面元素如下
<pages
validateRequest="false"
pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<controls>
<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
</controls>
</pages>
和sectionGroup元素:
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
在项目根目录的主web.config中,您需要确保assemblies元素如下:
<assemblies>
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
还有更多更改要做 - 最好的办法是查看MVC3项目和MVC4项目的web.config文件,并删除不属于您的内容。
答案 1 :(得分:1)
我对MVC的更高版本有完全相同的问题。通过Nugget更新了我的所有包后,问题就解决了。
答案 2 :(得分:0)
以下为我工作
安装 - 打包Microsoft.AspNet.Web.Optimization
答案 3 :(得分:0)
我工作的解决方案我删除了项目中提供错误的引用。
使用右键单击项目再次重新安装 - &gt;添加引用 - &gt;搜索Assembly的名称,然后再次添加。
对于这个问题,您必须在第一个项目引用下删除System.Web.Mvc并单击项目 - &gt;添加引用 - &gt;搜索System.Web.Mvc(你会看到现在是4.0.0.0)安装它。
答案 4 :(得分:-1)
您可以使用当时正在寻找的版本下载System.Web.Mvc.dll:
参考 - &gt;添加 - >浏览并选择您的文件。
这个解决方案对我有用!!
祝你好运