簡體   English   中英

運行時錯誤:無法加載文件或程序集“System.Web.WebPages.Razor,版本=3.0.0.0”

[英]Runtime error: Could not load file or assembly 'System.Web.WebPages.Razor, Version=3.0.0.0

我通過 NuGet 修改了我的 ASP.NET MVC4 包,現在System.Web.WebPages.Razor v3無法加載。 有時其他包也不會加載。

我的同事毫無困難地運行了該解決方案,因此問題肯定是我的開發系統上的配置(而不是已簽入的任何內容)。

我已經嘗試了各種 SOF 和其他論壇鏈接上的建議,包括:

以及從那里鏈接的建議。 我還檢查了控制面板,沒有發現引用 MVC 的已安裝程序。 (如果重要的話,我正在運行 MS Win 7 SP 1。)

我願意接受任何和所有建議。

這是我的核心轉儲信息:

“/”應用程序中的服務器錯誤。

無法加載文件或程序集“System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或其依賴項之一。 該系統找不到指定的文件。

說明:在執行當前 Web 請求期間發生未處理的異常。 請查看堆棧跟蹤以獲取有關錯誤及其在代碼中的來源的更多信息。

異常詳細信息:System.IO.FileNotFoundException:無法加載文件或程序集“System.Web.WebPages.Razor,版本=3.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依賴項之一。 該系統找不到指定的文件。

 Source Error: An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of

可以使用下面的異常堆棧跟蹤來識別異常。

 Assembly Load Trace: The following information can be helpful to determine why the assembly 'System.Web.WebPages.Razor,

版本=3.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35' 無法加載。

=== 預綁定狀態信息 === LOG: User = CodesWithHammer LOG: DisplayName = System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 (Fully-specified) LOG: Appbase = file:///c:/users/CodesWithHammer/documents/visual studio 2012/Projects/MPP/MPP/ LOG: Initial PrivatePath = c:\\users\\CodesWithHammer\\documents\\visual studio 2012\\Projects\\MPP\\MPP\\bin Calling程序集:Microsoft.Web.WebPages.OAuth,版本=3.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35。

=== LOG:此綁定在默認加載上下文中啟動。 日志:使用應用程序配置文件:c:\\users\\CodesWithHammer\\documents\\visual studio 2012\\Projects\\MPP\\MPP\\web.config 日志:使用主機配置文件:C:\\Users\\CodesWithHammer\\Documents\\IISExpress\\config\\aspnet .config LOG:使用來自 C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\config\\machine.config 的機器配置文件。 日志:后政策參考:System.Web.WebPages.Razor,版本=3.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35 日志:正在嘗試下載新的 URL 文件:///C:/Users/CodesWithHammer/AppData/Local /Temp/Temporary ASP.NET Files/root/5bf3ca07/f960d9c5/System.Web.WebPages.Razor.DLL。 日志:正在嘗試下載新的 URL 文件:///C:/Users/CodesWithHammer/AppData/Local/Temp/Temporary ASP.NET Files/root/5bf3ca07/f960d9c5/System.Web.WebPages.Razor/System.Web.WebPages .Razor.DLL。 日志:正在嘗試下載新的 URL 文件:///c:/users/CodesWithHammer/documents/visual studio 2012/Projects/MPP/MPP/bin/System.Web.WebPages.Razor.DLL。 日志:正在嘗試下載新的 URL 文件:///c:/users/CodesWithHammer/documents/visual studio 2012/Projects/MPP/MPP/bin/System.Web.WebPages.Razor/System.Web.WebPages.Razor.DLL . 日志:正在嘗試下載新的 URL 文件:///C:/Users/CodesWithHammer/AppData/Local/Temp/Temporary ASP.NET Files/root/5bf3ca07/f960d9c5/System.Web.WebPages.Razor.EXE。 日志:正在嘗試下載新的 URL 文件:///C:/Users/CodesWithHammer/AppData/Local/Temp/Temporary ASP.NET Files/root/5bf3ca07/f960d9c5/System.Web.WebPages.Razor/System.Web.WebPages .Razor.EXE。 日志:正在嘗試下載新的 URL 文件:///c:/users/CodesWithHammer/documents/visual studio 2012/Projects/MPP/MPP/bin/System.Web.WebPages.Razor.EXE。 日志:正在嘗試下載新的 URL 文件:///c:/users/CodesWithHammer/documents/visual studio 2012/Projects/MPP/MPP/bin/System.Web.WebPages.Razor/System.Web.WebPages.Razor.EXE .

堆棧跟蹤:

 [FileNotFoundException: Could not load file or assembly 'System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral,

PublicKeyToken=31bf3856ad364e35' 或其依賴項之一。 系統找不到指定的文件。] Microsoft.Web.WebPages.OAuth.PreApplicationStartCode.Start() +0

 [InvalidOperationException: The pre-application start initialization method Start on type

Microsoft.Web.WebPages.OAuth.PreApplicationStartCode 引發異常並顯示以下錯誤消息:無法加載文件或程序集“System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或其中之一它的依賴。 系統找不到指定的文件..] System.Web.Compilation.BuildManager.InvokePreStartInitMethodsCore(ICollection 1 methods, Func 1 setHostingEnvironmentCultures) +550 System.Web.Compilation.BuildManager.InvokePreStartInitMethods(ICollection`1 methods) +132 System.Web .Compilation.BuildManager.CallPreStartInitMethods(String preStartInitListPath) +90 System.Web.Compilation.BuildManager.ExecutePreAppStart() +135 System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameterLevels policyParameters托管異常 appDomainCreationException) +516

 [HttpException (0x80004005): The pre-application start initialization method Start on type

Microsoft.Web.WebPages.OAuth.PreApplicationStartCode 引發異常並顯示以下錯誤消息:無法加載文件或程序集“System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或其中之一它的依賴。 系統找不到指定的文件..] System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +9874840 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +101 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +254

版本信息:Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.0.30319.18055

(對於那些讀到這里的人:我沒有足夠的聲譽來制作標簽pull-out-my-hair 。如果有合適的現存標簽,請包括它。KTHX。)

ETA:當我嘗試手動將Microsoft.AspNet.Mvc更新到版本 3 時,這是我在包管理器控制台上遇到的錯誤:

安裝失敗。 正在回滾...安裝包:將“Microsoft.AspNet.Mvc 5.0.0”更新為“Microsoft.AspNet.Mvc 3.0.20105.1”失敗。 無法找到與“Microsoft.AspNet.Mvc 3.0.20105.1”兼容的“Microsoft.AspNet.Mvc.FixedDisplayModes”版本。 在行:1 char:16 + Install-Package <<<< Microsoft.AspNet.Mvc -Version 3.0.20105.1 + CategoryInfo : NotSpecified: (:) [Install-Package], InvalidOperationException +fullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands .InstallPackage 命令

ETA2:我從我的同事那里得到了包目錄。 他們有MS.AspNet.Mvc v5,他們運行得很好。 但他們也有MS.AspNet.Mvc.FixedDisplayModes v5。 所以我要把這兩個都加進去。是的,我已經備份了我的整個解決方案。 :)

ETA3:所以我重新升級到 AspNet MVC v5,並跳過了已棄用的 Mvc.FixedDisplayNodes。 然后我遇到了 AspNet.WebPages 版本沖突的問題,所以我使用了這個修復程序: Conflicting versions of ASP.NET Web Pages detected: specified version is "1.0.0.0", but the version in bin is "2.0.0.0" in ASP.MET MVC 3

現在我的項目運行了!

感謝大家的幫助!

您可以在 Nuget Package Microsoft ASP.NET Web Pages Version 3.2.0 中找到它

Microsoft ASP.NET 網頁

如果您有對 3.0.0.0 之前版本的引用,請刪除該引用,在包文件夾中添加對正確 .dll 的引用,並確保在 .dll 的屬性中將“Copy Local”設置為“True” .

然后在您的 web.config 中(如@MichaelEvanchik 所述)

  <runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="System.Web.WebPages.Razor" PublicKeyToken="31bf3856ad364e35"/>
    <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
  </dependentAssembly>
</assemblyBinding>

“更新包 - 重新安裝 Microsoft.AspNet.WebPages”

在包管理器控制台中使用此命令重新安裝 Microsoft.AspNet.WebPages nuget 包。 100%工作!

同樣的事情就發生在我身上 NUGET。

以下標簽有幫助

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="System.Web.WebPages.Razor" PublicKeyToken="31bf3856ad364e35"/>
    <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
  </dependentAssembly>

此外,如果這發生在服務器上,我必須確保我在文件系統的“特權帳戶”上運行應用程序池,但我認為這是您的問題

在新的 actionmailer 中,“razorengine”是一個依賴項。 Razorengine 的最新版本安裝了對 System.Web.Razor 3.0.0 的依賴。

如果您在應用程序中使用早期版本(我假設您在另一個項目中使用 actionmailer 並且您引用了另一個項目的郵件功能),那么您當然會遇到這個問題。

在早期的應用程序中,我有一個使用 system.web.Razor 2.0.0 版的 webapplication MVC。 當然,我得到了這個問題。 怎么修? => 簡單!

  1. 只需在您的 actionmailer 項目中卸載整個 actionmailer。
  2. 安裝以前版本的 RazorEngin

    Install-Package RazorEngine -Version 3.3.0(因為 3.3.0 版將引用 system.web.razor 2.0.0)

  3. 再次安裝 actionmailer(它不會安裝最新版本的 RazorEngin,因為你自己已經這樣做了)
成功!

您的 Web 應用程序的 bin 文件夾中是否有 System.Web.WebPages.Razor.dll? 它的版本是什么? (資源管理器右鍵單擊,屬性)我猜它不是 3.0.0.0。 只需獲取 v3.0.0.0 的 nuget 包,也許通過從您的同事那里復制包文件夾。 或者手動安裝: http : //www.nuget.org/packages/Microsoft.AspNet.Mvc/3.0.20105.1

編輯:如果您從同事那里復制內容,請將相關版本號復制到packages.config 中。 這就是告訴 nuget 將哪些版本放入包文件夾的原因。

我不想安裝visual studio和開發環境,所以我在Windows server 2016機器上安裝了AspNetMVC4Setup.exe,它解決了問題。 安裝程序是從 Microsoft 網站下載的。

安裝程序的文件屬性

在我的情況下,通過上述任何方法都無法解決問題。 我的包配置中的所有路徑都是正確的,並且 dll 的位置如所指,我仍然收到 System.Web.WebPages.Razor 的運行時錯誤。 I changed the localhost port number and this worked

我不確定為什么我會遇到這個問題以及為什么更改端口號可以解決它。 只是發布這個,因為我覺得這可能對那里的人有用。

就我而言,問題不在於綁定重定向或丟失/不匹配的 Microsoft.AspNet.Razor 包/dll,因此上述解決方案不起作用。

在我的非 Web 項目中,問題是 RazorEngine+Microsoft.AspNet.Razor 安裝在與調用程序集/啟動項目(項目 B)不同的項目(項目 A)中 因為沒有顯式引用 Razor,所以System.Web.Razor在 Release 版本中沒有被復制到 /bin

解決方案是在應用程序入口點安裝 RazorEngine+Microsoft.AspNet.Razor (在我的例子中是項目 B,ConsoleApplication),然后 System.Web.Razor 被復制到 /bin 並且每個人都很高興。

我遇到了同樣的錯誤,對我有用的是:

  1. 修復引用錯誤。
  2. 關閉 Visual Studio。
  3. 刪除包。
  4. 刪除 .vs 文件夾。
  5. 再次運行項目。
  6. 重建項目。

我遇到這個問題是因為我卸載了 VS 2012,我不想重新安裝它,所以我從 Microsoft.com 下載了 AspNetMVC4Setup.exe 並解決了我的問題。

https://www.microsoft.com/en-us/download/details.aspx?id=30683

我在升級到 v3.0.0.preview4 時遇到了這個問題,所以降級到穩定版本解決了這個問題。

我收到此錯誤是因為當我發布 Web 應用程序時,bin 文件夾中缺少此類 DLL(以及許多其他 DLL)。 這似乎是 Visual Studio 發布功能中的一個錯誤。 再次清理、重新編譯和發布它,使此類 DLL 能夠正確發布。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM