从nuget升级到web油脂1.5.1.25624后,会出现System.IO.FileLoadException



我是asp.net的死亡页面,这是在我使用nuget为mvc4升级web油脂和引导程序之后出现的。

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


无法加载文件或程序集"WebGrease"或其某个依赖关系。无法验证强名称签名。这个程序集可能已被篡改,或者它被延迟签名但没有使用正确的私钥完全签名。(HRESULT中的异常:0x80131045)描述:在当前web请求的执行。请查看堆栈跟踪有关错误的详细信息以及错误的来源密码

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

来源错误:

在执行期间生成了未处理的异常当前web请求。关于可以使用下面的异常堆栈跟踪来识别异常。

程序集加载跟踪:以下信息对确定无法加载程序集"WebGrease"的原因。


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

使用package Manager控制台强制卸载包

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" />

我不得不在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>
...

我也有同样的错误。发生这种情况的原因是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)。

在此之后,一切正常。

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

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

相关内容

  • 没有找到相关文章

最新更新