介绍
今天我更新了我的 ASP.NET MVC 应用程序,但遇到了以下错误(德语 - 抱歉):
(它说无法找到程序集“WebGrease,版本 1.5.1.25624”)
程序集 System.Web.Optimization, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 尝试加载 WebGrease 程序集并失败。
解决方案
我知道通过在 web.config 中添加绑定(bind)重定向可以轻松绕过这个问题(因为我更新了 WebGrease):
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.6.5135.21930" />
</dependentAssembly>
进一步的问题
知道为什么需要这样做以及如何创建 *.Optimization 程序集会非常好。 System.Web.Optimization 1.1.3 程序集依赖于 WebGrease 1.5.2 并且“只使用其他版本的 WebGrease”-重定向可能会导致方法调用,这些方法调用在新版本中不再存在,不是吗?
*.Optimization 的开发人员是否在他们的项目中包含对 WebGrease 1.5.2 的引用,在构建和创建 NuGet 包后删除了 WebGrease 程序集?或者他们是否在代码中加载程序集?
任何有关其工作原理的解释都非常感谢。谢谢你。
最佳答案
Taken from MSDN doc 关于这个问题:
很久以前我也遇到过同样的问题......无论如何,我相信这是 NuGet 包的一个问题,根据 CodePlex 的这个 work item。