2013-02-13 65 views
2

我的視圖頁面出現錯誤,因此我將視覺工作室更新爲mvc4,但我正在使用mvc3。我第一次更新使用NuGet,但它不起作用,我通過獨立的MVC4更新。所以它的工作。但是當我試圖運行MVC3項目時,它給了我以下錯誤:編譯錯誤:「比引用的程序集更高的版本」

CS1705: Assembly 'MVC3Project, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' uses 'System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' which has a higher version than referenced assembly 'System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'

任何人都可以幫助我嗎?

回答

4

內部的意見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> 
     <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文件,並刪除那些不應該存在於你的項目中的東西。

+0

它已經是3. – Dhwani 2013-02-13 10:11:54

+0

某處你有一個定義指定v4程序集的應用程序期望它,但你有v3程序集引用(因爲它應該是一個MVC3項目)。 – 2013-02-13 10:14:25

+0

雅得到它。謝謝。 – Dhwani 2013-02-13 10:26:47

0

以下爲我工作

安裝,包裝Microsoft.AspNet.Web.Optimization

0

對我來說,工作的解決方案我刪除這給誤差在項目的參考。

重新安裝,再次右鍵單擊項目 - >添加引用 - >搜索程序集的名稱,然後再次添加。

對於這個問題,你必須在第一個項目引用下刪除System.Web.Mvc,然後點擊項目 - >添加引用 - >搜索System.Web.Mvc(你將會看到現在是4.0.0.0)安裝它。

1

我對MVC的更高版本有完全相同的問題。在我通過Nugget更新了所有包後,問題就解決了。

相關問題