37

I am asp.net death page, this is coming after i upgraded webgrease and bootstrap for mvc4 using nuget.

Server Error in '/' Application.


Could not load file or assembly 'WebGrease' or one of its dependencies. Strong name signature could not be verified. The assembly may have been tampered with, or it was delay signed but not fully signed with the correct private key. (Exception from HRESULT: 0x80131045) Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.IO.FileLoadException: Could not load file or assembly 'WebGrease' or one of its dependencies. Strong name signature could not be verified. The assembly may have been tampered with, or it was delay signed but not fully signed with the correct private key. (Exception from HRESULT: 0x80131045)

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Assembly Load Trace: The following information can be helpful to determine why the assembly 'WebGrease' could not be loaded.


Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.18045

DontVoteMeDown
  • 21,122
  • 10
  • 69
  • 105
  • 1
    did anyone of you had luck to at least restore the package to the old version? – Luke94 Jul 16 '13 at 09:54
  • @Luke94: Yes, I did. Follow Hubo's instructions and it will revert to 1.3. – LeftyX Jul 16 '13 at 10:18
  • I've just written an email to webgrease team to let them know. In the meanwhile there's no other option but go back to the old version. – LeftyX Jul 16 '13 at 10:18
  • got it to work with @MSRS solution – Luke94 Jul 16 '13 at 10:27
  • By the way version 1.3 wasn't working for me either I've got similar issue like this one: http://stackoverflow.com/questions/13297402/how-to-resolve-antlr3-dependency-hell. Now they released version 1.5 and I have `Exception from HRESULT: 0x80131045` issue. Holly crap! – angularrocks.com Jul 16 '13 at 12:26
  • @Luke94, to restore previous version just reinstall Microsoft ASP.NET Web Optimization Framework. Uninstall-Package Microsoft.AspNet.Web.Optimization Uninstall-Package WebGrease Install-Package Microsoft.AspNet.Web.Optimization – Hubo Jul 16 '13 at 10:07
  • Please select the answer from dunken as the good one, that's what helped me. – Jan Bühler Jan 14 '15 at 12:20

5 Answers5

36

Force uninstall the package using Package Manager Console

uninstall-package -f WebGrease

then install the previous version 1.3.0 using the following command

install-package WebGrease -Version 1.3.0

Open your Web.config file and replace below dependency under runtime tag

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

MSRS
  • 803
  • 7
  • 20
  • I was just writing down the same solution :-) The only thing I did different than you is that I removed the dependent assembly entry before reinstalling WebGrease – Luke94 Jul 16 '13 at 10:26
  • 3
    Your answer saved my bacon today! –  Jul 16 '13 at 13:33
  • Depending on your deployment mechanism, the 1.3.0 version of WebGrease.dll might not overwrite the 1.5.1 version. Something to watch out for if you used this answer, deployed, and it was still broken. – danmiser Jul 16 '13 at 16:00
  • I'd advise against using an old WebGrease version. This solution probably no longer wroks. Just changing the dependentassembly like in the answer from dunken does the trick while using the current webgrease. – Jan Bühler Jan 14 '15 at 12:22
8

I had to add the following code in 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>
...
Dunken
  • 8,481
  • 7
  • 54
  • 87
  • This was my issue because our web.configs aren't checked into source since they're environment dependant and compiled for each deployment environment. We use web.config.tmpl files that are templatized with environment variables. – blockloop Jan 20 '14 at 17:54
5

I had the same error. It was happened because nuget updated WebGrease dll but didn't update a web.config file (especial version of used dll).

So I changed next line in my web.config:

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

to

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

Number of version (1.6.5135.21930) I took from dll properties.

After this everything works correct.

RredCat
  • 5,259
  • 5
  • 60
  • 100
  • 1
    +1. Such begins the seeding of word association "crap" to an otherwise awesome "Nuget" updates.... – EdSF Jul 27 '14 at 02:32
3

We’re aware of an error in the assembly’s strong name signature and so we’re actively working to release an updated version as soon as possible. For now, we have unlisted the WebGrease 1.5.1 package from nuget.org.

eugchi
  • 261
  • 1
  • 2
  • Something was pulling in that old version. Doing 'uninstall-package -f WebGrease' and then 'install-package WebGrease' installed a newer version, updated the web.config, and everything worked. – Steven Jan 31 '14 at 20:46
0

Try this: Check if the above dll's are in GAC. If so, in your custom app bin folder check if the above dll's are present if so remove them from your reference.