无法加载文件或程序集 System.Web.WebPages.Razor, , Version=3.0.0.0 或其依赖项之一

Posted

技术标签:

【中文标题】无法加载文件或程序集 System.Web.WebPages.Razor, , Version=3.0.0.0 或其依赖项之一【英文标题】:Could not load file or assembly System.Web.WebPages.Razor, , Version=3.0.0.0 or one of its dependencies 【发布时间】:2014-02-02 04:58:40 【问题描述】:

我在我的应用程序中使用 MVC 5、WCF 和 Unity 框架。

我在运行 WCF 服务时遇到以下错误:

Server Error in '/' Application.

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.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.IO.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.

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Assembly Load Trace: The following information can be helpful to determine why the assembly 'System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' could not be loaded.


WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

Stack Trace: 


[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.]
   System.Web.Mvc.PreApplicationStartCode.Start() +0

[InvalidOperationException: The pre-application start initialization method Start on type System.Web.Mvc.PreApplicationStartCode threw an exception with the following error message: 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..]
   System.Web.Compilation.BuildManager.InvokePreStartInitMethodsCore(ICollection`1 methods, Func`1 setHostingEnvironmentCultures) +556
   System.Web.Compilation.BuildManager.InvokePreStartInitMethods(ICollection`1 methods) +132
   System.Web.Compilation.BuildManager.CallPreStartInitMethods(String preStartInitListPath, Boolean& isRefAssemblyLoaded) +102
   System.Web.Compilation.BuildManager.ExecutePreAppStart() +153
   System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) +516

[HttpException (0x80004005): The pre-application start initialization method Start on type System.Web.Mvc.PreApplicationStartCode threw an exception with the following error message: 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..]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +9882460
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +101
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +254

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.33440

我在 WCF 项目中添加了 System.Web.WebPages.Razor, Version=3.0.0.0,仍然存在同样的错误。

有人知道如何解决这个错误吗?

【问题讨论】:

【参考方案1】:

确保您的项目以 .net 4.5 为目标,所有引用均有效且 Web AspNet.WebPages.* 位于 bin(发布/调试)文件夹中。

您也可以尝试在包管理器控制台中使用此命令重新安装 Microsoft.AspNet.WebPages nuget 包

> Update-Package –reinstall Microsoft.AspNet.WebPages 

【讨论】:

为什么在 WCF 项目中需要这个? Razor 是一个网络 DLL。 另外,不要将Microsoft.Web.MvcSystem.Web.Mvc 混淆。我不知道为什么 MvcContrib 认为这是个好名字。 @user2934829 - 你真的应该接受这个作为答案 我的项目只是 Web Api,也有同样的问题。我通过清除 bin 文件夹解决了这个问题 :) 我解决了删除System.Web.Mvc 的问题并且工作正常!【参考方案2】:

我在我的 Win10 x64 系统上遇到了确切的错误(在其他几个缺失的参考错误中)。我的问题是(我相信),是由于从添加/删除中卸载其他 dll 的东西引起的。

在互联网上搜索解决方案后,最终对我有用的是这里的答案: https://***.com/a/27785999/692124

下载安装Web Pages Version 2

【讨论】:

【参考方案3】:

我有同样的问题,WCF 显示不相关的 MVC 程序集错误(我在解决方案中有多个 MVC 项目,它们使用 System.Web.WebPages.Razor,版本 = 3.0.0.0)。我在 WCF 项目中安装了 Microsoft.AspNet.WebPages 包,运行 WCF proj 并且它工作。之后我卸载了所有与 Microsoft.AspNet.WebPages 相关的软件包。它工作得很好。

【讨论】:

以上是关于无法加载文件或程序集 System.Web.WebPages.Razor, , Version=3.0.0.0 或其依赖项之一的主要内容,如果未能解决你的问题,请参考以下文章

无法加载文件或程序集 'PayPalAdaptivePaymentsSDK,版本 = 2.12.117.0

无法加载文件或程序集。找到的程序集的清单定义与程序集引用不匹配

无法加载文件或程序集'netstandard,版本 = 2.0.0.0

无法加载文件或程序集 此处的程序集名称 或其依赖项之一。访问被拒绝

无法加载文件或程序集或其依赖项之一

寻找解决策略:无法加载文件或程序集[重复]