2013-11-04 57 views
29

我想用外部登錄,所以我的包管理器安裝的Oauth:無法加載文件或程序集「System.Web.WebPages.Razor,版本= 3.0.0.0

PM> Install-Package Microsoft.AspNet.WebPages.OAuth 

然後安裝後,我得到這個錯誤然後我安裝剃鬚刀:

PM> Install-Package Microsoft.AspNet.Razor 

但我仍然有這個例外。更多我的應用程序是一個asp.net應用程序,而不是一個MVC應用程序。感謝幫助。

[FileNotFoundException: Could not load file or assembly 'System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.] 
    Microsoft.Web.WebPages.OAuth.PreApplicationStartCode.Start() +0 
+0

當你說一個aspp.net應用程序;你的意思是Webforms?因爲MVC仍然是一個asp.net應用程序。當它走了; Razor是一種MVC腳本語言。如果你沒有構建一個MVC應用程序;那麼你難怪你有問題。老實說;你自己回答了這個問題。 –

+0

您的項目是基於.net4。 Razor 3的許多組件可能基於4.5。檢查我的答案。 – Adrian

回答

12

您已升級到Razor 3.請記住,VS 12(直到更新4)不支持它。安裝剃刀3從的NuGet或提前爲這個LO-高科技建議降級它通過這些步驟

geekswithblogs.net/anirugu/archive/2013/11/04/how-to-downgrade-razor-3-and-fix-the-issue-that.aspx

+0

嗨我安裝了剃鬚刀3但沒有添加** System.Web.WebPages.Razor版本3 **,我仍然有例外 –

+1

Razor 3的依賴關係基於.net 4.5。如果你的項目部署在.net 4中,你將無法工作。在MVC 4中(這也可以在.net 4中使用,我們使用Razor 2.如果你有麻煩,那麼我只是建議你在.net中部署你的應用程序4(mvc4),它會簡單地工作:) – Adrian

+0

如果您的問題仍然存在,請備份並刪除所有與mvc 4一起運行。運行這個nuget https://www.nuget.org/packages/UpgradeMvc3ToMvc4,你會得到你的項目運行在MVC 4. – Adrian

14

道歉,但另一種選擇,爭奪的NuGet幾個小時之後,終於爲我工作,就是要重新在我的情況下創建一個新的空項目,即Web API,然後將剛剛破解的舊項目的內容複製到新項目中。花了我大約15分鐘。

+1

15分鐘VS小時的頭痛,這很好 – Ruchan

+0

類似地,在TFS項目中,我擱置了我的更改,隱藏了分支,刪除了現有文件,重新映射了項目,獲得了最新版本,從架子上合併。我認爲你的建議是一樣的。花了我一個小時的時間重新設置了這一切,因爲NuGet軟件包在我的本地環境中掙扎了近一天。 – stephenbayer

7

另一種選擇是更新Microsoft.AspnNet.Mvc NuGet包。請小心,因爲NuGet更新不會更新Web.Config。您應該更新以前的所有版本號碼以更新號碼。例如,如果您更新了asp.net MVC 4.0.0.0 5.0.0.0到,那麼這應該是在Web.config代替:使用NuGet包管理器控制檯在Visual Studio

更新

<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> 

<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 

<pages 
    validateRequest="false" 
    pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" 
    pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" 
    userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
    <controls> 
    <add assembly="System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" /> 
    </controls> 
</pages> 
1

更新-Package -reinstall Microsoft.AspNet.Mvc

相關問題