88

I'm getting this error while trying to run my MVC4 project, it was working fine until last time on my other machines, but when I'm trying to run it from another machine it's giving me this error:

Could not load file or assembly 'Antlr3.Runtime (1)' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

After reading about this here I've tried to do:

Install-Package Antlr3.Runtime -Pre

but it didn't help, any ideas?

Community
  • 1
  • 1
Maven
  • 14,587
  • 42
  • 113
  • 174

27 Answers27

105

I encountered the same problem when experimenting with the free Nlog logging platform.

This helped me:

Enter %TEMP% in the File Explorer and delete all the temporary files.

After that I didn't get the error when starting my MVC5 project in Visual Studio.

AH.
  • 2,913
  • 1
  • 28
  • 26
  • My error message didn't have the "(1)", but this solution still worked – Roberto May 22 '15 at 16:26
  • 13
    Thanks for this. It's Microsoft crap like this that sometimes makes you want to put your fist through the guts of Visual Studio... – Smyrnian Jul 02 '15 at 06:40
  • Awesome!! Wasted too many hours on this. My issue was not the build part but publishing the artifacts using the pubxml files was failing on the Jenkins Server, while it was working fine on my local machine. Once deleting the temp folder as described above, the publish artifacts worked without issues. – yyardim Oct 31 '17 at 17:18
43

Try to delete the temporary files for ASP.Net by doing one of these:

  • Enter %TEMP% in the File Explorer and delete all the temporary files.
  • Go to folder "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files" and delete all files.
edumen
  • 171
  • 1
  • 1
  • 11
sachin kulkarni
  • 737
  • 1
  • 13
  • 26
31

Don't forget to clear also the Temporary ASP.NET Files in Framework64. That did the trick for me.

  • C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files
  • C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files
chriz
  • 1,339
  • 2
  • 16
  • 32
  • Perfect thanks, tried the accepted answer to no avail until I saw this post, the Framework64 did it for me – Joshua Ohana Mar 28 '15 at 18:46
  • This works for my and another project-dll referenced. In my case all the references in Web project were broken, the message was: "Could not load file or assembly 'whatever.dll' or one of its dependencies". After clean up, dll reference could was created and all works fine. – Fer R Feb 01 '17 at 15:45
28

Just in case this helps someone.
I had this problem with an MVC 5 Application. Deleting Antlr3.Runtime.dll from the bin directory and re-building fixed the issue.

fhilton
  • 698
  • 1
  • 8
  • 9
18

My problem was that the latest version of WebGrease installs version 3.4.1.9004 of Antlr. Once I installed WebGrease and then updated Antlr to version 3.5.0.2, the error went away.

YeeHaw1234
  • 2,358
  • 1
  • 17
  • 16
  • 12
    My problem was exactly this issue. I had to unwind the dependency chain in the Package Manager Console by uninstalling Microsoft.AspNet.Web.Optimization, WebGrease and Antlr (in that order), then install-package Microsoft.AspNet.Web.Optimization, update-package WebGrease and finally update-package Antlr (in that order) to get the latest versions and correct the Antlr version issue. – Wade Dec 13 '14 at 02:03
17

For me, removing this node in the web.config file got rid of the error message:

<identity impersonate="true" userName="" password="">

But what really worked for me was granting full access (to the userName specified in impersonate), to the Temporary ASP.NET Files" folder found in C:\Windows\Microsoft.NET\Framework{version} (or Framework64).

The identity might also be stored in the Web Site Application Pool Settings, in IIS.

Make sure your nuget package is correctly installed, with the correct version. If nothing else works, then just try re-adding the reference from a local folder and setting it to Copy Local.

live-love
  • 48,840
  • 22
  • 240
  • 204
12

If any solutions solve your problem verify the web.config, the version of assembly

<dependentAssembly>
        <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
      </dependentAssembly>
Daniel Melo
  • 548
  • 5
  • 12
10

The one of the simple way is update antlr and webgrease

  1. Goto Package console manager
  2. then try apply these codes one by one
  3. PM>Update-Package Antlr
  4. PM>Update-Package WebGrease

Finally the Error Solved

aldebaran
  • 695
  • 8
  • 20
dee pan
  • 151
  • 1
  • 6
3

There was problem with impersonate="true" in web.config, i removed the line it worked !!

Again i placed the line and gave admin permission to account user with impersonate, my whole application worked :)

2

For me this was caused by a mismatch between the debug and runtime versions of Antlr.

Finally solved it by installing a different Antlr package: Install-Package Antlr

edson-
  • 123
  • 1
  • 8
2

Try to unlock the Antlr3.Runtime.dll if you add reference manually: enter image description here

ADM-IT
  • 3,719
  • 1
  • 25
  • 26
2

If you're using impersonation. The answer is to give permission for the user that you're impersonating access to the following folders :

  1. C:\Windows\Microsoft.NET\Framework[v4.0.30319 or the version that you're using]\Temporary ASP.NET Files

  2. Your site directory.

also you might need to create folder as the following :

C:\Windows\Microsoft.NET\Framework\[v4.0.30319 or the version that you're using]\Temporary ASP.NET Files\[Application-Name-Goes-Here]

But try the previous first, it worked for me.

Those two changes for granting the impersonated user permission to be able to save the temp data, and pull the dll files, and any needed files from the directories

Update, For windows 10 This is the solution that worked for me

We will do both steps, but Instead of C:\Windows\Microsoft.NET\Framework[v4.0.30319 or the version that you're using]\Temporary ASP.NET Files

Write %TEMP% into the file explorer, and give permission for the user that you're impersonating access to the following folder: C:\Users\[UserName]\AppData\Local\Temp\Temporary ASP.NET Files

1

I got a simple solution. Go to your own project folder and find a packages folder.

enter image description here

4b0
  • 21,981
  • 30
  • 95
  • 142
Md Shahriar
  • 2,072
  • 22
  • 11
0

In a project I had reference to WebGrease, but there was not corresponding element in packages.config. I remove the reference from project, because I don't need it anymore. It works now.

Tomas Kubes
  • 23,880
  • 18
  • 111
  • 148
0

I tried all of the answers in this post, but none of them worked for me.

So I deleted all of the /bin directories inside all of the projects from my solution, cleaned and rebuilt the solution and it finally worked!

My whole morning wasted working to figure out the problem...

Velociround
  • 611
  • 7
  • 18
0

what worked for me was removing the identity = true from my webconfig (under the system.web properties) and build the solution again and publish it again (if needed) and it worked like a charm!

Anchit
  • 141
  • 1
  • 5
0

My problem ended up being caused by a change to the mapped drives in our Group Policy. My solution has the tempDirectory setting set in the Web.config to use a RAM drive setup as my Z: drive. Apparently they started using the Z: drive and the DLLs were getting copied to tempDirectory like normal, but then I think they were being deleted by a process on the remote server (Virus scan probably). I was only able to figure this out by using Process Monitor and filtering for Antlr and seeing that it was looking in a network location for the DLLs.

Schmalls
  • 1,434
  • 1
  • 19
  • 19
0

I updated all packages in the Nudget Package Manager and it worked! In my case I'm hosting my website in GoDaddy

joalcego
  • 1,098
  • 12
  • 17
0

After trying to delete .netframework temp file without success, I changed

<system.web>
    <authentication mode="None" />
    <compilation debug="true" targetFramework="4.6.1" />
    <httpRuntime />
    <pages controlRenderingCompatibilityVersion="4.0" />
</system.web> 

With only targetFramework="4.6" instead of 4.6.1 Web site displays without errors. Next I changed again to targetFramework="4.6.1" and restart server. Everything remains Ok.

0

For me, the solution was to run Visual Studio as Administrator. It was apparently a permissions issue.

Alexander van Trijffel
  • 2,916
  • 1
  • 29
  • 31
0

Solution for me was to go Tools > NuGet Package Manager > Manage Packages for Solution

Then click Antlr3 and ensure it was installed in:

  1. The Startup Project
  2. Any libraries using reflection
  3. Any libraries calling the libraries that use reflection

In my case that was 4 Projects deep that needed it. Once that was done this issue was finally resolved.

Chris Moschini
  • 36,764
  • 19
  • 160
  • 190
0

I just faced this issue and tried above mentioned solutions but nothing worked for now I had to delete it's dll from bin floder and rebuild and then delete all releated files from packages folder and restore packages using package manager console

Ikram Shah
  • 1,206
  • 1
  • 11
  • 12
0

Deleted %temp%

Deleted bin

Deleted .vs

Now worked for me

Arun Prasad E S
  • 9,489
  • 8
  • 74
  • 87
0

In my case, when I cloned a project, Visual studio 2019 replaced a spaces character with '% 20' in the project's path. Then, when VS tried to find the nugget packages, it could not find the correct path.

Martin
  • 745
  • 2
  • 7
  • 23
0

I faced this issue after upgrading Microsoft.AspNet.Web.Optimization

update-package WebGrease and update-package Antlr (in that order) to get the latest versions and correct the Antlr version issue.

Nishan
  • 3,644
  • 1
  • 32
  • 41
0

For me, I did these steps and it's worked for me :

1 ) I deleted bin and obj folder (some files was not deleted by Clean project)

2 ) I checked some files like JS that was deleted a long time ago but they was included in project files. So I exclude them.

Mostafa Fallah
  • 398
  • 3
  • 19
0

This worked for me :

Tools > NuGet Package Manager > Manage Packages for Solution

Install de Antlr3.Runtime

enter image description here

Microsoft Visual Studio Community 2019 (2) Version 16.10.3

JRichardsz
  • 14,356
  • 6
  • 59
  • 94