【问题标题】:Could not load file or assembly 'WebGrease, Version=1.5.1.25624无法加载文件或程序集'WebGrease,版本 = 1.5.1.25624
【发布时间】:2014-07-18 06:18:33
【问题描述】:

我已经通过 NuGet 安装了 Microsoft ASP.NET Web 优化框架 1.1.3。我相信它安装得很好。这是一个 .NET 4.0 Web 窗体项目。

当我尝试捆绑时出现错误。我在 Application_Start 中的代码:

var jqueryBundle = new ScriptBundle("~/scripts/bundles/jquery");

    jqueryBundle.Include(new string[] { 
        "~/scripts/libs/jquery/jq/jquery-1.11.0.min.js",
        "~/scripts/swyft/mobileinit.min.js",
        "~/scripts/libs/jquery/jqm/142/lib/jquery.mobile-1.4.2.min.js",
    });

    BundleTable.Bundles.Add(jqueryBundle);

然后在我的一个 aspx 页面上...

<%= System.Web.Optimization.Scripts.Render("~/scripts/bundles/jquery") %>

给我这个错误:

发生了意外错误。 无法加载文件或程序集“WebGrease,版本=1.5.1.25624,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。 (HRESULT 异常:0x80131040)

但它就在那里!我正在运行 VS2013。

感谢您的帮助!

~红色

编辑 - 我的 WebConfig:

<runtime>
<assemblyBinding appliesTo="v2.0.50727" 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>
  ...
</assemblyBinding>

编辑 - 无法安装 Web Grease 1.5.1:

当我尝试安装 Web Grease 1.5.1 时出现此错误:

You cannot call a method on a null-valued expression.
At L:\MY_PROJECT_PATH\packages\WebGrease.1.5.1\tools\install.ps1:45 char:5
+     $msbuild.Xml.AddProperty("WebGreaseLibPath", $relativePackageUri.ToString(). ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull

** 编辑 - 添加 package.config 文件 **

<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="AjaxControlToolkit" version="7.1213" targetFramework="net40" />
<package id="AjaxMin" version="5.10.5260.16959" targetFramework="net40" />
<package id="Antlr" version="3.4.1.9004" targetFramework="net40" />
<package id="HtmlAgilityPack" version="1.4.6" targetFramework="net40" />
<package id="Microsoft.AspNet.ScriptManager.WebForms" version="5.0.0" targetFramework="net40" />
<package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net40" />
<package id="Microsoft.Data.Edm" version="5.6.1" targetFramework="net40" />
<package id="Microsoft.Data.Services.Client" version="5.6.1" targetFramework="net40" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net40" />
<package id="Microsoft.WindowsAzure.ConfigurationManager" version="2.0.3" targetFramework="net40" />
<package id="Newtonsoft.Json" version="6.0.3" targetFramework="net40" />
<package id="System.Spatial" version="5.6.1" targetFramework="net40" />
<package id="WebGrease" version="1.6.0" targetFramework="net40" />
<package id="WindowsAzure.Storage" version="4.0.1" targetFramework="net40" />
</packages>

编辑 - 添加错误的 SS

【问题讨论】:

  • 在您的 Web.Config 中是什么样子的
  • 是同一个版本吗?
  • 我刚刚添加了,谢谢!
  • 那里版本不匹配。当您构建应用程序时,您是否会看到任何构建警告(不是错误),上面写着“发现同一程序集的不同版本之间存在冲突......”
  • 我现在明白了。但要回答你的问题,不,我没有收到任何警告或错误:(

标签: c# asp.net .net-4.0 visual-studio-2013 asp.net-4.0


【解决方案1】:

Microsoft.AspNet.Web.Optimization 不适用于 Web Grease 1.5.1,因此安装该版本将无济于事。尝试使用 Nuget 控制台卸载这两个包(使用包管理器控制台查找和安装 NuGet 包)[http://docs.nuget.org/docs/start-here/using-the-package-manager-console]

然后手动安装 Web Grease 1.6。然后安装 Microsoft.AspNet.Web.Optimization 1.1.3

【讨论】:

  • 所以我完全按照您的步骤操作。没有骰子。我正在安装 1.5.1,因为我将向您展示错误消息。 “无法加载文件或程序集'WebGrease,版本 = 1.5.1.25624,文化 = 中性,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)”
  • 你能添加你的 package.config 吗?听起来可能还有另一个依赖于 WebGrease 的包
【解决方案2】:

我认为WebGreaseMicrosoft.AspNet.Web.Optimization 的版本不同。因此,请尝试卸载两者并使用Nuget 更新它们。卸载后验证您的 package.config 文件是否删除了两个版本。之后更新并观察 web.config 文件。

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

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

如果它不起作用,则验证 C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Packages\Microsoft.AspNet.Web.Optimization 并将其删除并重新安装它

【讨论】:

  • 所以我完全按照步骤操作,请不要这不是 MVC 项目,而是 Web 表单项目。无论如何,它没有工作。由于某种原因,我在引用 1.5.1 版时收到错误消息。我认为 Web Opt 一依赖于不会安装的 1.5.2。请参阅我添加的图像。感谢您的尝试!
  • 感谢您的成功。对我来说,1.5.2 版与您使用的相同命令效果很好
【解决方案3】:

由于最新版本显然存在依赖问题,我不情愿地在 NuGet 包管理器控制台中使用这些命令回到旧版本的优化和 Webgrease:

Uninstall-Package Microsoft.AspNet.Web.Optimization
Uninstall-Package WebGrease
Install-Package Microsoft.AspNet.Web.Optimization -Version 1.1.0
Install-Package WebGrease -version 1.3

这个组合对我有用,但可能还有其他组合。

【讨论】:

猜你喜欢
  • 2016-03-31
  • 2014-10-01
  • 2013-11-20
  • 1970-01-01
  • 2014-02-06
  • 1970-01-01
  • 1970-01-01
  • 2017-10-15
  • 2020-05-09
相关资源
最近更新 更多