从nuget升级到webgrease 1.5.1.25624后,出现System.IO.FileLoadException

问题描述 投票:0回答:6

我是asp.net死亡页面,这是我使用nuget升级了mvc4的webgrease和bootstrap之后出现的。

“/”应用程序中的服务器错误。


无法加载文件或程序集“WebGrease”或其之一 依赖关系。无法验证强名称签名。这 程序集可能已被篡改,或者延迟签名但未签名 使用正确的私钥进行完全签名。 (HRESULT 的异常: 0x80131045) 说明:在执行期间发生未处理的异常。 执行当前的网络请求。请检查堆栈跟踪 有关该错误及其起源的更多信息 代码。

异常详细信息:System.IO.FileLoadException:无法加载文件 或程序集“WebGrease”或其依赖项之一。强名 签名无法验证。组件可能已被篡改 或延迟签署但未完全签署正确的 私钥。 (HRESULT 异常:0x80131045)

来源错误:

执行过程中产生了未处理的异常 当前的网络请求。有关原产地和地点的信息 可以使用下面的异常堆栈跟踪来识别异常。

装配加载跟踪:以下信息可能有助于 确定无法加载程序集“WebGrease”的原因。


版本信息:Microsoft .NET Framework 版本:4.0.30319; ASP.NET版本:4.0.30319.18045

asp.net-mvc-4 webgrease
6个回答
36
投票

使用包管理器控制台强制卸载包

uninstall-package -f WebGrease

然后使用以下命令安装以前的版本1.3.0

install-package WebGrease -Version 1.3.0

打开 Web.config 文件并替换运行时标签下的以下依赖项

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


8
投票

我必须在 web.config 中添加以下代码:

    <runtime>
      <assemblyBinding 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>
...

5
投票

我也有同样的错误。发生这种情况是因为 nuget 更新了 WebGrease dll,但没有更新 web.config 文件(使用的 dll 的特殊版本)。

所以我更改了 web.config 中的下一行:

 <bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />

<bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" />

我从 dll 属性中获取的版本号(1.6.5135.21930)。

此后一切正常。


3
投票

我们意识到程序集的强名称签名中存在错误,因此我们正在积极努力尽快发布更新版本。目前,我们已从 nuget.org 中取消列出 WebGrease 1.5.1 包。


0
投票

试试这个:检查上述 dll 是否在 GAC 中。如果是这样,请在您的自定义应用程序 bin 文件夹中检查上述 dll 是否存在,如果存在,请将它们从您的引用中删除。


0
投票

从 web.config 部分删除“xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0”标记效果很好。

© www.soinside.com 2019 - 2024. All rights reserved.