2016-02-12 147 views
1

我在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 Razor視圖沒有Intellisense

以前通過卸載/重新安裝MVC NuGet軟件包解決了這個問題,但是這次沒有奏效。我已經嘗試了以下所有內容,沒有任何工作。該項目編譯和運行沒有問題,只有Intellisense有問題。所有這些步驟都是在關閉所有視圖的情況下完成的,然後再重新打開。每一次都是在第二次關閉VS之間進行測試。

  • 確保System.Web.Mvc被實際引用並找到(參考列表中沒有黃色感嘆號)。
  • 卸載/重新安裝MVC。
  • 確保在Web.config文件(視圖文件夾和根級別)中引用了System.Web.Mvc,並且這些引用具有正確的版本5.0.0.0和正確的PublicKeyToken
  • 確保將參考設置爲Copy Local,並且實際上在項目構建時正在複製。
  • 刪除全部文件夾中的每個項目中的binobj文件夾。
  • 確保解決方案中的所有項目都針對相同版本的.NET(4.6)。

我有很多問題與Visual Studio包管理....我該如何解決VS應該找不到在視圖中的引用,以便Intellisense再次工作?

+0

全試試這個:http://omegacoder.com/?p=1008 –

+0

會發生這種情況更新舊項目的MVC的版本? –

+0

這是與配置文件有關的事情 - 您可以在錯誤消息中看到它正在請求版本5.2.3.0,但是您說配置文件具有5.0.0.0的正確版本,您必須將其更新到版本5.2 .3.0在配置文件中 –

回答

1

在它是說,它無法找到System.Web.Mvc, Version=5.2.3.0和錯誤信息,那麼你提到的配置文件是System.Web.Mvc, Version=5.0.0.0

所以先嚐試更新所有System.Web.Mvc, Version=5.0.0.0Version=5.2.3.0兩個web.config中意見配置文件

[有一個參考庫在意見的端配置文件:-)]

如果不工作,那麼試試這個:

使您備份配置文件第一 -

我從MVC4更新項目MVC5後也有類似的問題。

問題是更新沒有正確更新配置文件。

您可以使用最新版本創建新的MVC項目,並從新項目複製配置文件。

您可以從Web.config文件複製<runtime>部分。

而且只複製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>