VS 2015:无法加载文件或程序集'System.Web.WebPages.Razor,版本=2.0.0.0
VS 2015 : Could not load file or assembly 'System.Web.WebPages.Razor, Version=2.0.0.0
我正在 运行ning 一个包含不同项目的解决方案。但是,我正在尝试 运行 一个项目(class 库),其中包含使用 Visual Studio 2015 和框架 4.6(在 windows 8 OS、IIS 上的 wcf 服务表达)。但是它一直在浏览器中显示此错误:
错误:
我注意到 Razor 2.0 的调用程序集是 "System.Web.Mvc" 版本 4.0.0.1:
Calling assembly : System.Web.Mvc, Version=4.0.0.1, Culture=neutral,
PublicKeyToken=31bf3856ad364e35.
但是,System.Web.MVCdll在本项目中没有被引用,项目中的引用如下图:
虽然它没有被引用,但它总是出现在 bin 文件夹中,即使我清除了它。可能这就是为什么它试图调用“System.Web.WebPages.Razor”版本 2.0.
澄清问题的线索:
- 我在调用 System.web.mvc
的 Web.Config 中没有相关程序集
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
- 也没有包含在包配置中:
<packages>
<package id="EntityFramework" version="6.1.3" targetFramework="net46" />
<package id="Microsoft.AspNet.Providers" version="2.0.0" targetFramework="net451" />
<package id="Microsoft.AspNet.Providers.Core" version="2.0.0" targetFramework="net451" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net46" />
<package id="PostSharp" version="4.3.5-alpha" targetFramework="net46" />
<package id="System.Web.Providers" version="1.2" targetFramework="net451" />
</packages>
- 不作为参考
我想知道发生了什么事?可能另一个项目会影响它!
我也尝试过使用 nugget 来更新软件包(卸载并重新安装),但仍然处于相同的情况。
问题的可能原因:
我还注意到这个项目中有一个“Gobal.asax”文件,它使用“MvcApplication”class 实现了“System.Web.HttpApplication”,这可能是问题的一个很好的原因。
感谢任何帮助。
我将从查看程序集绑定失败开始 - 这将向您显示哪个程序集正在请求失败的绑定。
有一个方便的小工具可以用来查看绑定失败。这应该可以帮助您找到它。
https://msdn.microsoft.com/en-us/library/e74a18c4(v=vs.71).aspx
祝你好运!
解决方案:通过 nuget 管理器安装 Microsoft.AspNet.Webpages 版本 2.0 的第一个版本。
在我的例子中,错误发生在部署之后,问题是该服务器的子文件夹中 web.config 中的引用。
我通过远程访问那台机器并在本地浏览站点来解决这个问题(或者您可以在 web.config 中启用远程错误)
<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" />
因此请务必在所有文件中搜索 2.0.0.0 或 System.Web.WebPages.Razor 以确保在某处没有引用!
我收到此错误,但引发错误的项目已正确安装 Microsoft.AspNet.Webpages。然后我意识到保存在单独项目中的 WCF 服务丢失了它的 MVC 安装。
所以在我的其他项目中安装 Microsoft.AspNet.Mvc 为我修复了这个错误。
我正在 运行ning 一个包含不同项目的解决方案。但是,我正在尝试 运行 一个项目(class 库),其中包含使用 Visual Studio 2015 和框架 4.6(在 windows 8 OS、IIS 上的 wcf 服务表达)。但是它一直在浏览器中显示此错误:
错误:
我注意到 Razor 2.0 的调用程序集是 "System.Web.Mvc" 版本 4.0.0.1:
Calling assembly : System.Web.Mvc, Version=4.0.0.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35.
但是,System.Web.MVCdll在本项目中没有被引用,项目中的引用如下图:
虽然它没有被引用,但它总是出现在 bin 文件夹中,即使我清除了它。可能这就是为什么它试图调用“System.Web.WebPages.Razor”版本 2.0.
澄清问题的线索:
- 我在调用 System.web.mvc 的 Web.Config 中没有相关程序集
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
- 也没有包含在包配置中:
<packages>
<package id="EntityFramework" version="6.1.3" targetFramework="net46" />
<package id="Microsoft.AspNet.Providers" version="2.0.0" targetFramework="net451" />
<package id="Microsoft.AspNet.Providers.Core" version="2.0.0" targetFramework="net451" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net46" />
<package id="PostSharp" version="4.3.5-alpha" targetFramework="net46" />
<package id="System.Web.Providers" version="1.2" targetFramework="net451" />
</packages>
- 不作为参考
我想知道发生了什么事?可能另一个项目会影响它! 我也尝试过使用 nugget 来更新软件包(卸载并重新安装),但仍然处于相同的情况。
问题的可能原因:
我还注意到这个项目中有一个“Gobal.asax”文件,它使用“MvcApplication”class 实现了“System.Web.HttpApplication”,这可能是问题的一个很好的原因。
感谢任何帮助。
我将从查看程序集绑定失败开始 - 这将向您显示哪个程序集正在请求失败的绑定。
有一个方便的小工具可以用来查看绑定失败。这应该可以帮助您找到它。
https://msdn.microsoft.com/en-us/library/e74a18c4(v=vs.71).aspx
祝你好运!
解决方案:通过 nuget 管理器安装 Microsoft.AspNet.Webpages 版本 2.0 的第一个版本。
在我的例子中,错误发生在部署之后,问题是该服务器的子文件夹中 web.config 中的引用。
我通过远程访问那台机器并在本地浏览站点来解决这个问题(或者您可以在 web.config 中启用远程错误)
<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" />
因此请务必在所有文件中搜索 2.0.0.0 或 System.Web.WebPages.Razor 以确保在某处没有引用!
我收到此错误,但引发错误的项目已正确安装 Microsoft.AspNet.Webpages。然后我意识到保存在单独项目中的 WCF 服务丢失了它的 MVC 安装。
所以在我的其他项目中安装 Microsoft.AspNet.Mvc 为我修复了这个错误。