首页 文章

无法加载文件或程序集'System.Web.WebPages.Razor,Version = 2.0.0.0

提问于
浏览
54

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

'/ MyApplication'应用程序中的服务器错误 . 无法加载文件或程序集'System.Web.WebPages.Razor,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一 . 定位的程序集的清单定义与程序集引用不匹配 . (来自HRESULT的异常:0x80131040)描述:在执行当前Web请求期间发生了未处理的异常 . 请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息 . 异常详细信息:System.IO.FileLoadException:无法加载文件或程序集'System.Web.WebPages.Razor,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一 . 定位的程序集的清单定义与程序集引用不匹配 . (来自HRESULT的异常:0x80131040)源错误:在执行当前Web请求期间生成了未处理的异常 . 可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息 . 程序集加载跟踪:以下信息有助于确定无法加载程序集“System.Web.WebPages.Razor,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35”的原因 . ===预绑定状态信息===日志:用户= IIS APPPOOL \ ASP.NET v4.0日志:DisplayName = System.Web.WebPages.Razor,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35(完全指定)LOG:Appbase = file:/// C:/.../ LOG:初始PrivatePath = C:... \ bin调用程序集:Microsoft.Web.Helpers,Version = 2.0.0.0,Culture = neutral ,PublicKeyToken = 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,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35日志:尝试下载新的URL文件:/// C:/Windows/Microsoft.NET/Framework64 /v4.0.30319/Temporary ASP.NET Files /.../ cb62a7b2 / 327a0353 / System.Web.WebPages.Razor.DLL . 日志:尝试下载新的URL文件:/// C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files /.../ cb62a7b2 / 327a0353 / System.Web.WebPages.Razor / System .Web.WebPages.Razor.DLL . 日志:尝试下载新的URL文件:/// C:/LeGroupeHtmSVN/.../UpDir.Web/bin/System.Web.WebPages.Razor.DLL . 警告:比较程序集名称导致不匹配:主要版本错误:无法完成程序集的设置(hr = 0x80131040) . 探测终止 . 堆栈跟踪:[FileLoadException:无法加载文件或程序集'System.Web.WebPages.Razor,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一 . 定位的程序集的清单定义与程序集引用不匹配 . (来自HRESULT的异常:0x80131040)] Microsoft.Web.Helpers.PreApplicationStartCode.Start()0 [InvalidOperationException:预应用程序启动初始化方法启动类型Microsoft.Web.Helpers.PreApplicationStartCode引发异常,并显示以下错误消息:不加载文件或程序集'System.Web.WebPages.Razor,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一 . 定位的程序集的清单定义与程序集引用不匹配 . (来自HRESULT的异常:0x80131040) . ] System.Web.Compilation.BuildManager.InvokePreStartInitMethods(ICollection`1 methods)11711966 System.Web.Compilation.BuildManager.CallPreStartInitMethods()465 System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost,IConfigMapPathFactory configMapPathFactory,HostingEnvironmentParameters hostingParameters,PolicyLevel policyLevel,Exception appDomainCreationException)1167 [HttpException(0x80004005):预应用程序启动初始化方法启动类型Microsoft.Web.Helpers.PreApplicationStartCode引发异常,并显示以下错误消息:无法加载文件或程序集'System.Web.WebPages.Razor,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一 . 定位的程序集的清单定义与程序集引用不匹配 . (来自HRESULT的异常:0x80131040) . ] System.Web.HttpRuntime.FirstRequestInit(HttpContext context)11700896 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context)141 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr,HttpContext context)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>

我甚至不知道我是否可以使用带有.Net 4的System.Web.WebPages.Razor v2.0.0.0 .

现在,我如何找出引用System.Web.WebPages.Razor v2.0.0.0的内容?

12 回答

  • 50

    我如何找出引用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 .

  • 2

    很简单 . 在Nuget Package Manager控制台中:

    更新包Microsoft.AspNet.Mvc -Reinstall

  • 1

    当我执行“删除未使用的引用”时,就会出现此问题 . 该网站仍然在我的本地机器上工作,但在发布后没有在服务器上工作 .

    Remove unused references

    我通过执行以下操作修复了此问题,

    • 在Visual Studio中打开'Package Manager Console'

    • 卸载 - 打包Microsoft.AspNet.Mvc

    • Install-Package Microsoft.AspNet.Mvc

  • 53

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

    这对我有用,改变你的web.config .

  • 0

    在经历了很多痛苦,谷歌搜索和拔毛后,我最终使用nuget卸载了MVC 4,从web配置中删除了对MVC,剃须刀和基础设施的所有引用,从bin文件夹中删除了dll - 然后使用nuget重新安装所有内容 . 花了更少的时间才弄清楚为什么dll不匹配 .

  • 1

    在添加对 System.Web.Mvc 的不必要引用后,我收到了同样的错误 . 我删除了所有可以找到的引用,但似乎没有任何工作 . 我终于删除了项目的 bin 文件夹,重建后错误消失了 .

  • 27

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

    换句话说,我不需要使用Nuget或Visual Studio .

  • 0

    我也收到了这个错误并尝试了我在网上找到的所有东西,它不会消失 . 最后,我刚刚将MVC从5.2.3降级到4.0.40804 . 我不喜欢这个解决方案,因为最终我需要使用MVC 5,但它现在可以使用了 . 希望这有助于其他人 .

  • 1

    短:
    你有一个纯Web API项目的问题(因此不需要剃须刀),尝试添加它,重建,然后删除它 .

    很长的故事:
    我遇到了一个全新的纯Web API项目的问题,除了堆栈跟踪指向"System.Web.Mvc"作为调用程序集(请参阅Darin的答案) . 虽然在我的项目中没有提到MVC,Razor或类似的东西......
    我决定添加MVC包(AspNet.Mvc,AspNet.WebPages和AspNet.Razor)以检查是否存在任何后续问题 .
    然后,WebApi应用程序完全正常启动 . 然后我删除了完全相同的包,一切都还可以 .

    希望它可以帮助某人 .

  • 7

    在某些情况下,只需安装网页2即可解决此问题(使用我的案例解决 - 使用web api部署到本地网页)

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

  • 7

    如果早期工作项目突然崩溃并提到错误,您可以尝试以下解决方案 .

    • 删除相应Web /服务项目的bin文件夹 .

    • Build

    这对我有用 .

  • 0

    对于类似的程序集绑定错误,以下步骤可能有助于

    • 右键单击解决方案,然后单击 Manage Nuget Packages for Solution ...

    • 转到合并选项卡(最后一个选项卡)并检查解决方案中不同项目中安装的软件包之间是否存在任何差异 . 特别注意你引用的项目可能有较低的版本,因为它们通常不太注意)

    • consolidate 特别与您相关的包裹汇编错误并注意许多软件包依赖于其他一些软件包,如* .code&* .api&...
      在解决所有可疑合并后

    • ,重建并重新运行应用程序并查看程序集绑定是否已解决 .

相关问题