无法加载文件或程序集“System.Web.WebPages.Razor,版本= 2.0.0.0(C

2019-06-25 10:24发布

我刚刚升级包在MVC 3项目(ASP.net 4),并在该项目中访问页面时,现在我收到以下错误信息:

在“/ MyApplication的应用程序的服务器错误。

无法加载文件或程序集“System.Web.WebPages.Razor,版本= 2.0.0.0,文化=中性公钥= 31bf3856ad364e35”或它的一个依赖。 在位于集清单定义不匹配的程序集引用。 (:0x80131040从HRESULT异常)说明:在当前web请求的执行过程中发生了未处理的异常。 请检查堆栈跟踪有关该错误它起源于代码的详细信息和。

异常详细信息:System.IO.FileLoadException:无法加载文件或程序集“System.Web.WebPages.Razor,版本= 2.0.0.0,文化=中性公钥= 31bf3856ad364e35”或它的一个依赖。 在位于集清单定义不匹配的程序集引用。 (从HRESULT异常:0x80131040)

源错误:

在当前web请求的执行过程中生成未处理的异常。 有关异常原因和发生位置的信息可以使用异常堆栈跟踪下面来识别。

程序集加载跟踪:下列信息有助于确定程序集“System.Web.WebPages.Razor,版本= 2.0.0.0,文化=中性公钥= 31bf3856ad364e35”无法加载。

===预绑定状态信息=== LOG:用户= IIS APPPOOL \ ASP.NET v4.0的LOG:DisplayName的= System.Web.WebPages.Razor,版本= 2.0.0.0,文化=中性公钥= 31bf3856ad364e35(完全指定)LOG:应用平台=文件:/// C:/.../ LOG:初始PrivatePath = C:\斌调用汇编:Microsoft.Web.Helpers,版本= 2.0.0.0,文化=中性公钥= 31bf3856ad364e35。 ===日志:此绑定默认加载上下文开始。 日志:正在使用应用程序配置文件:C:\的web.config日志:使用主机配置文件:C:\ WINDOWS \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet.config日志:从C使用计算机配置文件: \的Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ CONFIG \ machine.config中。 日志:后政策参考:System.Web.WebPages.Razor,版本= 2.0.0.0,文化=中性公钥= 31bf3856ad364e35 LOG:尝试新的URL文件下载:/// C:/Windows/Microsoft.NET/Framework64 /v4.0.30319/Temporary ASP.NET文件/.../ cb62a7b2 / 327a0353 / System.Web.WebPages.Razor.DLL。 日志:新的URL文件的尝试下载:/// C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET文件/.../ cb62a7b2 / 327a0353 / System.Web.WebPages.Razor /系统.Web.WebPages.Razor.DLL。 日志:新的URL文件的尝试下载:/// C:/LeGroupeHtmSVN/.../UpDir.Web/bin/System.Web.WebPages.Razor.DLL。 警告:比较程序集名称时发生不匹配:主版本错误:未能完成组装(HR = 0x80131040)的设置。 探测终止。

堆栈跟踪:

[FileLoadException:未能加载文件或程序集“System.Web.WebPages.Razor,版本= 2.0.0.0,文化=中性公钥= 31bf3856ad364e35”或它的一个依赖。 在位于集清单定义不匹配的程序集引用。 (从HRESULT异常:0x80131040)]
Microsoft.Web.Helpers.PreApplicationStartCode.Start()+0

[InvalidOperationException异常:本申请前的启动初始化方法上式Microsoft.Web.Helpers.PreApplicationStartCode开始引发了异常,出现以下错误消息:无法加载文件或程序集“System.Web.WebPages.Razor,版本= 2.0.0.0,培养=中性公钥= 31bf3856ad364e35' 或它的一个依赖。 在位于集清单定义不匹配的程序集引用。 (从HRESULT异常:0x80131040)。
System.Web.Compilation.BuildManager.InvokePreStartInitMethods(ICollection`1方法)11711966
System.Web.Compilation.BuildManager.CallPreStartInitMethods()465
System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager AppManager的,IApplicationHost APPHOST,IConfigMapPathFactory configMapPathFactory,HostingEnvironmentParameters hostingParameters,PolicyLevel policyLevel,异常appDomainCreationException)1167

[HttpException(0X80004005):本申请前的启动初始化方法开始于式Microsoft.Web.Helpers.PreApplicationStartCode引发了异常,出现以下错误消息:无法加载文件或程序集“System.Web.WebPages.Razor,版本= 2.0 .0.0文化=中性公钥= 31bf3856ad364e35' 或它的一个依赖。 在位于集清单定义不匹配的程序集引用。 (从HRESULT异常:0x80131040)。
System.Web.HttpRuntime.FirstRequestInit(HttpContext的上下文)11700896 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext的上下文)141 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest WR,HttpContext的上下文)4869125

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

在我的web.config文件,并在我的申请,我引用System.Web.WebPages.Razor V1.0.0.0:

  <dependentAssembly> <assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-1.0.0.0" newVersion="1.0.0.0" /> </dependentAssembly> 

我甚至不知道我是否可以使用System.Web.WebPages.Razor V2.0.0.0在.NET 4中。

现在,我该如何找出所引用System.Web.WebPages.Razor V2.0.0.0?

Answer 1:

我怎么找出所引用System.Web.WebPages.Razor V2.0.0.0?

刚才看了你的异常堆栈跟踪:

Calling assembly : Microsoft.Web.Helpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35

如此看来,您使用的是Microsoft.Web.Helpers而这又取决于System.Web.WebPages.Razor, Version=2.0.0.0



Answer 2:

很简单。 在NuGet包管理器控制台:

更新包Microsoft.AspNet.Mvc -Reinstall



Answer 3:

这个问题开始时,我没有“删除未使用的引用”。 该网站仍然工作在我的本地机器上,但在发布后在服务器上并没有奏效。

我用以下方法解决了这个问题,

  1. 打开“包管理器控制台”在Visual Studio
  2. 卸载,包装Microsoft.AspNet.Mvc
  3. 安装,包装Microsoft.AspNet.Mvc


Answer 4:

太多的痛苦,谷歌搜索和揪头发后,我结束了卸载MVC 4使用的NuGet,删除从网络配置到MVC,剃须刀和基础设施的所有引用,bin文件夹中删除DLL的 - 然后使用的NuGet重新安装了一切。 花更少的时间,然后试图找出为什么DLL并不匹配。



Answer 5:

在ASP.NET MVC 4,命名空间是不是System.Web.WebPages.Razor,但System.Web.Razor

这工作对我来说,改变你的web.config。



Answer 6:

我增加了不必要的参考后得到同样的错误System.Web.Mvc 。 我删除了所有引用我能找到,但似乎没有任何工作。 我终于删除了该项目的bin文件夹和错误走了重建后。



Answer 7:

我卸载了ASP.NET MVC 4使用Windows控制面板,然后通过运行重新安装它AspNetMVC4Setup.exe (这是我从拿到https://www.microsoft.com/en-us/download/details.aspx?id=30683 ) ,而固定我的问题。

换句话说,我并不需要使用的NuGet或Visual Studio。



Answer 8:

我也收到了这个错误,并试图一切我能在网上找到的,它不会消失。 最后,我只是降级MVC从5.2.3到4.0.40804。 我不喜欢这样的解决方案,因为最终我将需要使用MVC 5,但它适用于现在。 希望这可以帮助别人。



Answer 9:

短:
在你有这个问题,一个纯Web API项目(因此不需要剃刀),尝试添加也无妨,重建,然后将其删除。

很长的故事:
我有这个问题有一个全新的纯Web API项目,除了堆栈跟踪指出“System.Web.Mvc”作为调用组件(见Darin的答案)。 在我的项目没有提到MVC,剃须刀之类的东西,但...
我决定加入MVC包(ASPNET.MVC,AspNet.WebPages和AspNet.Razor),以检查是否有任何后续问题。
该应用程序的WebAPI随后推出完美的罚款。 然后,我删除了完全相同的包装,一切都还OK。

希望它可以帮助别人。



Answer 10:

在某些情况下,只需要安装网页2来解决这个(解决了与我的情况 - 使用Web API部署到本地网页)

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



Answer 11:

如果前面的工作项目,提到的错误突然崩溃,你可以尝试以下解决方案。

  • 删除相应的网络/服务项目的bin文件夹。
  • 建立

这为我工作。



Answer 12:

出于类似的组件绑定错误,下面的步骤可能会有所帮助:

  1. 右键单击您的解决方案,然后单击管理的NuGet包解决方案...
  2. 去巩固选项卡(最后一个选项卡),并检查安装在您的解决方案中不同项目包之间任何的差异。 特别要注意你引用的项目可以具有较低的版本,因为他们通常不太注意到了)
  3. 巩固专门与您的装配误差包和注意,许多软件包依赖于像* .CODE&*&.API一些其他的包...
  4. 解决所有可疑的合并之后,重建并重新运行应用程序,看看组件绑定解决。


Answer 13:

我第一次尝试穆罕默德·伊马德的答案 -没有喜悦。 然后我试图

git clean -x -d -f

这给我带来了一个新的“罗斯林”错误,我能够解决手动编辑我的.csproj 。

有意思的是,之后我再往下看了一点倒在罗斯林问题的页面,我发现了另一个建议甚至更多的选票( Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r )。 思考我宁愿落实,除手动编辑.csproj的,我支持我的.csproj的变化,才发现我的解决方案仍然是工作。

所以,在这一切之后,我想知道,如果穆罕默德的答案(此页)会做的伎俩,如果我只是做了git的清洁第一。



文章来源: Could not load file or assembly 'System.Web.WebPages.Razor, Version=2.0.0.0