无法加载文件或程序集'WebGrease,Version = 1.5.1.25624,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一

Jid*_*jan 69 .net c# dll asp.net-mvc-4 webgrease

我有一个MVC4 Web api项目.在运行服务项目时,我收到一个错误

无法加载文件或程序集'WebGrease,Version = 1.5.1.25624,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一.该系统找不到指定的文件.

我添加了WebGrease.dll文件,但仍然出现错误

并尝试更改web.config

<bindingRedirect oldVersion="0.0.0.0-1.3.0.0"/>"
Run Code Online (Sandbox Code Playgroud)

<bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
Run Code Online (Sandbox Code Playgroud)

请告知我缺少的东西.

c0y*_*teX 82

我知道这对OP来说有点迟了但我在尝试使用Bootstrap 3 for MVC 4 NuGet包时遇到了同样的问题,在我的情况下它与Microsoft.AspNet.Web.Optimization包有关,并设法找一个简单的解决方案

尝试在包管理器控制台中执行以下命令:

Install-Package Microsoft.AspNet.Web.Optimization
Update-Package WebGrease
Uninstall-Package Microsoft.AspNet.Web.Optimization
Uninstall-Package WebGrease
Install-Package Microsoft.AspNet.Web.Optimization
Update-Package WebGrease
Run Code Online (Sandbox Code Playgroud)

前两行对我没有任何影响,因为这些软件包已经由Bootstrap 3 for MVC 4软件包安装和更新,但是无论如何我都运行它们然后编译并运行得很好.


And*_*ena 58

这个错误是因为Microsoft.AspNet.Web.Optimization 1.1.3内部引用,WebGrease 1.5.1.25624即使Nuget包本身具有依赖性WebGrease 1.5.2.14234.在创建Nuget包时,有人显然搞砸了.

要解决此问题,请将此装配绑定添加到您的Web.Config.

  <dependentAssembly>
    <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-1.5.1.25624" newVersion="1.5.2.14234" />
  </dependentAssembly>
Run Code Online (Sandbox Code Playgroud)

  • 这为我修好了.我更新了一个新项目的所有包,并获得了1.6版本.按照上述说明,但适当更新新版本,它有效:<bindingRedirect oldVersion ="0.0.0.0-1.5.1.25624"newVersion ="1.6.5135.21930"/> (10认同)
  • 简单高效的答案.谢谢 (2认同)
  • 作为使用web.config的“不是专家”,我想我要提到的是dependentAssembly是这样嵌套的:&lt;configuration&gt; &lt;runtime&gt; &lt;assemblyBinding xmlns =“ urn:schemas-microsoft-com:asm.v1”&gt; &lt;dependentAssembly&gt; (2认同)

Fer*_*ali 47

你试过NuGet吗?

Install-Package WebGrease -Version 1.5.1
Run Code Online (Sandbox Code Playgroud)

要么

Install-Package WebGrease -Version 1.5.2
Run Code Online (Sandbox Code Playgroud)

  • 我在项目中找到的任何引用都指向1.5.2,但我仍然得到了这个错误.'Install-Package WebGrease -Version 1.5.2'为我工作.所有这一切都是将它添加到我的web.config:<dependentAssembly> <assemblyIdentity name ="WebGrease"publicKeyToken ="31bf3856ad364e35"culture ="neutral"/> <bindingRedirect oldVersion ="0.0.0.0-1.5.2.14234"newVersion =" 1.5.2.14234"/> </ dependentAssembly> (9认同)
  • 我必须手动将上面的内容添加到web.config中,但是我已经解决了这个问题. (3认同)

Par*_*ani 14

对我来说,上述情况均无效.

经过两天的努力,终于找到了解决方案.

我做的是,我卸载了Microsoft.AspNet.Web.OptimizationWebGrease.

我知道这个优化组件内部是指WebGrease 1.5.1.所以我选择了一个不参考WebGrease 1.5.1的优化版本.

我运行以下命令以使一切正常.

Uninstall-Package Microsoft.AspNet.Web.Optimization
Uninstall-Package WebGrease
Install-Package Microsoft.AspNet.Web.Optimization -Version 1.1.0
Run Code Online (Sandbox Code Playgroud)

我希望我能够为那些以上解决方案无效的人提供良好的帮助.

干杯!


joe*_*oey 7

我观察到的问题与Jidheesh Rajan提到的问题非常吻合.但是,从Nuget包管理器更新包(未指定版本)无法解决问题.以下是我必须采取的措施来解决这个问题.(基本上,我明确地将WebGrease更新为1.6版)

在Visual Studio的包管理器控制台中,显式将WebGrease更新为1.6版.这是命令.

Install-Package WebGrease -Version 1.6
Run Code Online (Sandbox Code Playgroud)

输出应该是

Removing 'WebGrease 1.5.2' from {project name}
Run Code Online (Sandbox Code Playgroud)

将'WebGrease 1.6.0'添加到{project name}成功将'WebGrease 1.6.0'添加到{project name}卸载'WebGrease 1.5.2'.成功卸载'WebGrease 1.5.2'.

最终用web更新了web.config

    assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" /
    bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" 
Run Code Online (Sandbox Code Playgroud)

这也导致从csproj文件中删除一行.

<WebGreaseLibPath>..\packages\WebGrease.1.5.2\lib</WebGreaseLibPath>
Run Code Online (Sandbox Code Playgroud)

以及csproj文件中此节点的更新

<Reference Include="WebGrease, Version=1.5.2.14234, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <HintPath>..\packages\WebGrease.1.5.2\lib\WebGrease.dll</HintPath>
  <SpecificVersion>False</SpecificVersion>
  <Private>True</Private>
</Reference>
Run Code Online (Sandbox Code Playgroud)

对此

<Reference Include="WebGrease, Version=1.6.5135.21930, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <HintPath>..\packages\WebGrease.1.6.0\lib\WebGrease.dll</HintPath>
  <SpecificVersion>False</SpecificVersion>
  <Private>True</Private>
</Reference>
Run Code Online (Sandbox Code Playgroud)

请记住,我在本地计算机上没有问题,只是在舞台Web服务器上.我想在不更新软件包的情况下尽力解决问题,但这是我唯一的修复方法.


Ali*_*air 5

试了很多东西,但这对我有用,有时webgrease汇编问题有时Web.Optimization汇编问题.这适用于Microsoft.AspNet.Web.Optimization 1.1.3

Update-Package WebGrease -Version 1.6
Run Code Online (Sandbox Code Playgroud)