今天我更新了我的ASP.NET MVC应用程序,我遇到了以下错误(在德语 - 抱歉):
Die Datei oder Assembly“WebGrease,Version = 1.5.1.25624,Culture = neutral,PublicKeyToken = 31bf3856ad364e35”odereineAbhängigkeitdavonwurde nicht gefunden。 Die gefundene Manifestdefinition der Assembly stimmt nicht mit demAssemblyverweisüberein。 (Ausnahme von HRESULT:0x80131040)
(它说集合“WebGrease,版本1.5.1.25624”找不到)
程序集System.Web.Optimization,Version = 1.1.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35尝试加载WebGrease程序集并失败。
我知道可以通过在web.config中添加绑定重定向来轻松绕过此问题(因为我更新了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”-redirect可能会导致方法调用,新版本中不再存在这种方法调用,不是吗?
* .Optimization的开发人员是否在他们的Project中包含对WebGrease 1.5.2的引用,在构建和创建NuGet包之后删除了WebGrease程序集?或者他们是否在代码中加载程序集?
对此工作原理的任何解释都非常感谢。谢谢。
答案 0 :(得分:1)
Taken from MSDN doc关于此事:
您可以手动编辑应用配置文件以解决装配问题 的问题。例如,如果供应商可能会发布更新版本 您的应用使用的汇编而不提供发布商政策, 因为他们不保证向后兼容性,你可以直接 您的应用程序通过放置程序集来使用较新版本的程序集 应用程序配置文件中的绑定信息。
我很久以前也遇到过同样的问题......无论如何我认为这是NuGet包的问题,根据Code {{{}}的work item。
答案 1 :(得分:1)