我在MVC 5,.NET 4.6,Visual Studio Professional 2015上。我偶尔会遇到一个问题,即VS决定不再想要查看某些引用。它通常与MVC直接相关。目前的问题是The type 'WebViewPage<>' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.
过去通过卸载/重新安装MVC NuGet包解决了这个问题,但这次没有用。我已经尝试了以下所有方法,但没有任何效果。该项目编译和运行没有任何问题,它只是有问题的Intellisense。这些步骤中的每一步都在关闭所有视图的情况下完成,之后重新打开。每个人都在第二次关闭VS之间进行了测试。
System.Web.Mvc
(引用列表中没有黄色感叹号)。System.Web.Mvc
个文件(视图文件夹和根级别)中都引用了Web.config
,并且这些引用具有正确的版本5.0.0.0
和正确的PublicKeyToken
。 Copy Local
,并且实际上在构建项目时正在复制。bin
和obj
文件夹中删除所有文件。我在Visual Studio程序包管理方面遇到很多问题....我如何修复VS,据说在视图中找不到引用,以便Intellisense再次工作?
答案 0 :(得分:1)
在错误消息中,它说它找不到System.Web.Mvc, Version=5.2.3.0
,然后你提到配置文件是System.Web.Mvc, Version=5.0.0.0
首先尝试在 web.config 和视图配置文件中将所有System.Web.Mvc, Version=5.0.0.0
更新为Version=5.2.3.0
[在视图配置文件的末尾有一个对库的引用: - )]
如果这不起作用,请试试这个:
首先备份您的配置文件 -
将项目从MVC4更新为MVC5后,我遇到了类似的问题。
问题是更新没有正确更新配置文件。
您可以使用最新版本创建新的MVC项目,并从新项目中复制配置文件。
您可以复制<runtime>
文件中的Web.config
部分。
然后复制整个Views config
文件
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization"/>
<add namespace="System.Web.Routing" />
<!--Then copy over your View References-->
</namespaces>
</pages>
</system.web.webPages.razor>
<appSettings>
<add key="webpages:Enabled" value="false" />
</appSettings>
<system.webServer>
<handlers>
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
</system.webServer>
<system.web>
<compilation>
<assemblies>
<add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
</compilation>
</system.web>
</configuration>