从nuget升级到webgrease 1.5.1.25624后,System.IO.FileLoadException即将到来

Isa*_*ran 37 asp.net-mvc-4 webgrease

我是asp.net死亡页面,这是在我使用nuget为mvc4升级webgrease和bootstrap之后.

'/'应用程序中的服务器错误.


无法加载文件或程序集"WebGrease"或其依赖项之一.强名称签名无法验证.程序集可能已被篡改,或者是延迟签名但未使用正确的私钥完全签名.(来自HRESULT的异常:0x80131045)描述:在执行当前Web请求期间发生了未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

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

来源错误:

在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.

程序集加载跟踪:以下信息有助于确定无法加载程序集"WebGrease"的原因.


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

MSR*_*SRS 36

使用Package Manager Console强制卸载软件包

uninstall-package -f WebGrease
Run Code Online (Sandbox Code Playgroud)

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

install-package WebGrease -Version 1.3.0
Run Code Online (Sandbox Code Playgroud)

打开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" />
Run Code Online (Sandbox Code Playgroud)

  • 你的回答今天救了我的培根! (3认同)

Dun*_*ken 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>
...
Run Code Online (Sandbox Code Playgroud)


Rre*_*Cat 5

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

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

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

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

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

在此之后一切正常.


小智 0

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