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

时间:2012-06-12 16:08:10

标签: asp.net-mvc-3 razor dependencies asp.net-4.0

我刚刚升级了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:无法加载文件或   assembly' System.Web.WebPages.Razor,Version = 2.0.0.0,Culture = neutral,   公钥= 31bf3856ad364e35'或其中一个依赖项。该   定位程序集的清单定义与程序集不匹配   参考。 (HRESULT异常:0x80131040)

     

来源错误:

     

执行期间生成了未处理的异常   当前的网络请求。有关的来源和位置的信息   可以使用下面的异常堆栈跟踪来识别异常。

     

装配加载跟踪:以下信息可能对您有所帮助   确定汇编为什么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(完全指定)   日志:Appbase = file:/// C:/.../日志:初始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 LOG:   试图下载新的URL   文件:/// C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary   ASP.NET Files /.../ cb62a7b2 / 327a0353 / System.Web.WebPages.Razor.DLL。   日志:尝试下载新网址   文件:/// C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary   ASP.NET   文件/.../ cb62a7b2 / 327a0353 / System.Web.WebPages.Razor / System.Web.WebPages.Razor.DLL。   日志:尝试下载新网址   文件:/// C:/LeGroupeHtmSVN/.../UpDir.Web/bin/System.Web.WebPages.Razor.DLL。   警告:比较程序集名称导致不匹配:重大   版本错误:无法完成装配设置(hr = 0x80131040)。   探测终止。

     

堆栈追踪:

     

[FileLoadException:无法加载文件或程序集   ' System.Web.WebPages.Razor,Version = 2.0.0.0,Culture = neutral,   公钥= 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   方法)+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>

我甚至不知道我是否可以将System.Web.WebPages.Razor v2.0.0.0与.Net 4一起使用。

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

16 个答案:

答案 0 :(得分:54)

这么简单。在Nuget Package Manager控制台中:

更新 - 打包Microsoft.AspNet.Mvc -Reinstall

答案 1 :(得分:50)

当我执行“删除未使用的引用”时,此问题就开始了。该网站仍在本地计算机上运行,​​但在发布后无法在服务器上运行。

Remove unused references

我通过执行以下操作解决了这个问题,

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

答案 2 :(得分:27)

  

如何找出引用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又取决于{{1}}。

答案 3 :(得分:8)

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

答案 4 :(得分:7)

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

这对我有用,请更改你的web.config。

答案 5 :(得分:2)

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

答案 6 :(得分:1)

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

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

答案 7 :(得分:1)

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

答案 8 :(得分:1)

完全重新安装PC后,出现了此处描述的错误。 VS 2017已重新安装,但未重新安装“ ASP.NET Web Pages 2”。重新安装“ ASP.NET Web Pages 2”后,此问题已解决。

另请参阅:Could not load file or assembly System.Web.WebPages.Razor, , Version=3.0.0.0 or one of its dependencies

答案 9 :(得分:0)

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

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

答案 10 :(得分:0)

如果之前的工作项目突然出现上述错误,您可以尝试以下解决方案。

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

这对我有用。

答案 11 :(得分:0)

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

  1. 右键单击您的解决方案,然后单击管理Nuget软件包以获取解决方案...
  2. 转到“合并选项卡”(最后一个选项卡),并检查解决方案中不同项目中安装的软件包之间是否有任何差异。特别注意您引用的项目,这些项目的版本可能较低,因为它们通常很少被注意到)
  3. 合并专门与程序集错误有关的软件包,请注意,许多软件包都依赖于* .code和* .api&...
  4. 等其他软件包
  5. 在解决所有可疑合并后,重新构建并重新运行该应用程序,并查看程序集绑定是否已解决。

答案 12 :(得分:0)

我第一次尝试Mohammed Emad's answer-没什么好高兴的。然后我尝试了

git clean -x -d -f

使我遇到了一个新的“ Roslyn”错误,我可以通过manually editing my .csproj进行修复。

有趣的是,在我进一步阅读罗斯林问题的页面后,我发现another suggestion的票数更多(Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r)。认为我宁愿实施而不是手动编辑.csproj,而是撤消了.csproj更改,只是发现我的解决方案仍在工作。

因此,毕竟,我想知道,如果我只是简单地先进行git clean,穆罕默德(在此页面上)的答案是否可以解决问题。

答案 13 :(得分:0)

我将MVC4升级到MVC5版本时遇到了相同的错误,首先我升级了依赖于

的调用程序集
> System.Web.WebPages.Razor, Version=2.0.0.0

之后,更新了Views文件夹下的web.config文件, 更新了以下来自

的软件包
<configSections>
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
      <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
    </sectionGroup>
</configSections>

<configSections>
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.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=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

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

这些步骤对我有用

答案 14 :(得分:0)

通过安装AspNetMVC4Setup.exe(这是链接:https://www.microsoft.com/en-us/download/details.aspx?id=30683)解决了这个问题。

通过重新启动/重新安装Microsoft.AspNet.Mvc程序包对我没有帮助。

答案 15 :(得分:0)

我通过NuGet降级到MVC 4,然后再次升级到5.2.7,它解决了此问题