将 WebGrease 升级到 1.3.0 版会得到错误



WebGrease升级到版本1.3.0时出现错误:

无法加载文件或程序集"WebGrease,版本=1.0.0.0,区域性=中性,公钥令牌=31bf3856ad364e35"或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(HRESULT的例外:0x80131040)

源错误:

Line 6:      <title>@ViewBag.Title</title>
Line 7:      @Styles.Render("~/Content/bundles/bootstrap")

如何解决此错误。

这是对

我有用的答案,它是上述一些答案的组合。首先安装/卸载/重新安装以下软件包:

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

然后复制 ~/Views/Shared/_Layout.cshtml 的内容删除 _Layout.cshtml 文件,重新创建它,然后将内容粘贴回去。

这是对我有用的最终修复。

<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.3.0.0" newVersion="1.3.0.0" /> </dependentAssembly>

Web.config 中的上层代码更改为以下内容

<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.3.0.0"/> </dependentAssembly>

看起来您引用了较旧的(1.0.0.0?)版本的程序集(假设当前版本是1.3.0.0)。在这种情况下,您需要在 web.config 中进行程序集重定向,或者更好地重新编译二进制文件以使用最新版本。

另一种可能性是,如果最新版本与旧版本(1.0.0.0)共享相同的程序集版本,则需要重新编译代码以使用正确的程序集并确保使用正确的副本(检查GAC是否有错误的版本,使用fuslogv调查导致错误的确切文件)。

我遇到了同样的问题。另一位开发人员升级了 WebGrease 包(以及其他软件包),但有些东西没有同步或签入。我编辑了包文件以删除对现有包的引用。然后我通过包管理器重新安装。最后,我更新了软件包。

如果 packages.config 文件与项目中的文件(包括正确版本)不匹配,包似乎不会安装或更新。但是,包管理器中没有给出任何错误,它只是无法更新或安装包。

以下组合为我解决了这个问题。首先,在包管理器命令行上运行以下命令(类似于sec_goat提供的答案,但不完全相同):

Uninstall-Package Microsoft.AspNet.Web.Optimization
Uninstall-Package WebGrease
Install-Package Microsoft.AspNet.Web.Optimization
Update-Package WebGrease

然后,与 Hriju 类似,我需要在我的 web.config 中更改这一行:

<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.3.0.0" newVersion="1.3.0.0" />

进入这个:

<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.3.0.0" />

对我有用的绑定重定向:

<dependentAssembly>
  <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-1.2.0.0" newVersion="1.3.0.0"/> </dependentAssembly>
</assemblyBinding>

微妙的区别是我没有在oldVersion attr中包含此版本(1.3.0.0)。

失败的蛋糕!

我遇到了类似的问题,只是这不是错误而是警告。 将 WebGrease 更新到 1.3.0 后,构建会将警告源放在声明上。 在确保我的 web.config 文件中具有适当的程序集重定向后,我最终创建了一个新的 _Layout.cshtml 视图,并使用与上一个完全相同的 razor 标记(复制/粘贴)保存在旧文件上。 在那之后,警告消失了。

我不确定警告的全部内容,但请尝试将代码复制到文件中,将其粘贴到新文件中并覆盖原始文件。

如果有人对为什么会这样有任何见解,我全都听见了。

这是

Microsoft.AspNet.Web.Optimization(优化前进)的问题。

您需要通过卸载 Optimise 并从 web.config 中删除任何 WebGrease 程序集重定向来降级 WebGrease。

然后重新安装 Optimise 并确保升级 WebGrease。

这是一个快速修复,但它让我的构建正常工作!

对于一个 Web API 项目,我正在研究真正有效的方法如下:

  1. 打开 NuGet 包管理器,单击Installed packages,然后卸载Microsoft.AspNet.Web.Optimization 。它会提示它将删除WebGrease 1.1.0 .打Yes .

  2. 现在重新安装它,单击 NuGet 的在线选项卡并搜索 Microsoft.AspNet.Web.Optimization .

现在一切都按预期工作。

感谢@roadsunknown。 我的配置在主机冻结后被灌输,从而导致我的 VM 无法正常关闭。 为了解决这个问题,我通过NuGet卸载了Microsoft.AspNet.Web.Optimization,然后不得不删除packages.config中对WebGrease的引用,最后通过NuGet重新安装了Microsoft.AspNet.Web.Optimize。

为了解决这个问题,我所做的只是更新package.config文件(WEBMATRIX)

<packages>
  <package id="Microsoft.AspNet.Web.Optimization" version="1.0.0" targetFramework="net40" />
  <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net40" />
  <package id="WebGrease" version="1.3.0" targetFramework="net40" />
</packages>

干杯!!!

这就是我的运行时部分的样子,它可以工作

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
            <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
        </dependentAssembly>
        <dependentAssembly>
            <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-1.2.0.0" newVersion="1.3.0.0" />
        </dependentAssembly>
    </assemblyBinding>
</runtime>

与 Hriju 和 Nathan (卸载、重新安装和更新)相同,只是我没有省略 newVersion 属性,而是保留了它。但是由于 WebGrease 从 1.1.0 直接变成了 1.3.0,所以不需要 1.2.0(就像 jenson-button-event 所说的那样)(祝西班牙的 JB 好运,顺便说一句)。

<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.1.0.0" newVersion="1.3.0.0" />

迂?也许吧,但它总是在细节中,对吧?这为我修复了它。

无论如何,这是希望他们在下一次更新中做对了。

就我而言,所有这些方法都不起作用。最后,我通过包管理器卸载Microsoft.AspNet.Web.Optimize和WebGrease包来解决此问题,然后在记事本中打开我的项目文件(.csproj)并删除与这两个包相关的所有条目,结果发现有问题。最后,我再次通过包管理器安装这两个包并运行项目。现在一切正常。

相关内容

  • 没有找到相关文章

最新更新