Ошибка method not found

Previous working asp.net webforms app now throws this error:

System.MissingMethodException: Method not found

The DoThis method is on the same class and it should work.

I have a generic handler as such:

public class MyHandler: IHttpHandler
{
    public void Processrequest(HttpContext context)
    {
      // throws error now System.MissingMethodException: 
      // Method not found.
      this.DoThis(); 
    }

    public void DoThis(){ ... }
}

ΩmegaMan's user avatar

ΩmegaMan

29.2k10 gold badges99 silver badges121 bronze badges

asked Nov 9, 2011 at 0:09

user603007's user avatar

user603007user603007

11.3k38 gold badges103 silver badges167 bronze badges

3

This is a problem which can occur when there is an old version of a DLL still lingering somewhere around. Make sure that the latest assemblies are deployed and no duplicated older assemblies are hiding in certain folders. Your best bet would be to delete every built item and rebuild/redeploy the entire solution.

Luke Girvin's user avatar

Luke Girvin

13.2k9 gold badges63 silver badges84 bronze badges

answered Nov 9, 2011 at 2:10

Polity's user avatar

13

⚠️ Wrong Nuget Package Version ⚠️

I had a unit test project which was pulling in our companies internal EF Nuget data access package and that code pulled in an external package whose version was way behind the current version.

The issue was that the Nuget settings for the top level package was set to the least version; and the lower level/older version won, and that was used during the operations….

Hence it silently got the wrong version for a common assembly used by both the package and the app.


💡 Solution 💡

By Setting/updating the package in Nuget to use and [get] the latest, fixed the issue.

answered Mar 31, 2016 at 21:39

ΩmegaMan's user avatar

ΩmegaManΩmegaMan

29.2k10 gold badges99 silver badges121 bronze badges

3

I resolved this issue by installing the correct .NET Framework version on the server. The website was running under version 4.0 and the assembly it was calling to was compiled for 4.5. After installation of .NET Framework 4.5 and upgrading the website to 4.5, all works fine.

answered Jul 6, 2013 at 23:41

Ben Gripka's user avatar

Ben GripkaBen Gripka

15.9k6 gold badges45 silver badges41 bronze badges

2

Restarting Visual Studio actually fixed it for me. I’m thinking it was caused by old assembly files still in use, and performing a «Clean Build» or restarting VS should fix it.

wonea's user avatar

wonea

4,74317 gold badges85 silver badges139 bronze badges

answered Feb 12, 2015 at 3:26

Jelani's user avatar

JelaniJelani

7056 silver badges25 bronze badges

0

Check your References!

Be sure that you are consistently pointing to the same 3rd party libraries (don’t just trust versions, look at the path) across your solutions projects.

For example, If you use iTextSharp v.1.00.101 in one project and you NuGet or reference iTextSharp v1.00.102 somewhere else you will get these types of runtime errors that somehow trickle up into your code.

I changed my reference to iTextSharp in all 3 projects to point to the same DLL and everything worked.

answered Jan 24, 2017 at 9:19

Juls's user avatar

JulsJuls

6236 silver badges15 bronze badges

2

also.. try to «clean» your projects or solution and rebuild again!

answered Nov 12, 2013 at 22:47

user384080's user avatar

user384080user384080

4,57615 gold badges63 silver badges96 bronze badges

I had this happen to me with a file referenced in the same assembly, not a separate dll. Once I excluded the file from the project and then included it again, everything worked fine.

answered Aug 17, 2012 at 20:30

Josh Noe's user avatar

Josh NoeJosh Noe

2,6682 gold badges35 silver badges37 bronze badges

0

I just ran into this on a .NET MVC project. The root cause was conflicting versions of NuGet packages. I had a solution with several projects. Each of the projects had some NuGet packages. In one project I had a version of the Enterprise Library Semantic Logging package, and in two other projects (that reference the first) I had older versions of the same package. It all compiles without error, but it gave a mysterious «Method not found» error when I tried to use the package.

The fix was to remove the old NuGet packages from the two projects, so that it was only included in the one project that actually needed it. (Also I did a clean rebuild of the whole solution.)

answered May 1, 2014 at 22:35

Mark Meuer's user avatar

Mark MeuerMark Meuer

7,1516 gold badges43 silver badges64 bronze badges

If developing with your own NuGet server, make sure the assembly versions are all the same:

[assembly: AssemblyVersion("0.2.6")]
[assembly: AssemblyFileVersion("0.2.6")]
[assembly: AssemblyInformationalVersion("0.2.6")]

answered Aug 25, 2013 at 23:32

sennett's user avatar

sennettsennett

7,9849 gold badges46 silver badges69 bronze badges

2

Have you tried turning if off and on again? Jokes aside, restarting my computer was what actually did the trick for me and isn’t mentioned in any of the other answers.

answered Jan 22, 2014 at 9:44

Lee Bailey's user avatar

Lee BaileyLee Bailey

3,5642 gold badges18 silver badges17 bronze badges

I’ve just had this issue and it turned out that it was because I was referencing a previous version of the DLL from my UI project. Therefore, when compiling it was happy. But when running it was using the previous version of the DLL.

Check references on all other projects before assuming you need to rebuild/clean/redeploy your solutions.

answered Apr 6, 2016 at 13:36

Jamie Lupton's user avatar

It’s also possible the problem is with a parameter or return type of the method that’s reported missing, and the «missing» method per se is fine.

That’s what was happening in my case, and the misleading message made it take much longer to figure out the issue. It turns out the assembly for a parameter’s type had an older version in the GAC, but the older version actually had a higher version number due to a change in version numbering schemes used. Removing that older/higher version from the GAC fixed the problem.

answered Sep 5, 2017 at 21:16

Jimmy's user avatar

JimmyJimmy

414 bronze badges

In my case it was a copy/paste problem. I somehow ended up with a PRIVATE constructor for my mapping profile:

using AutoMapper;

namespace Your.Namespace
{
    public class MappingProfile : Profile
    {
        MappingProfile()
        {
            CreateMap<Animal, AnimalDto>();
        }
    }
}

(take note of the missing «public» in front of the ctor)

which compiled perfectly fine, but when AutoMapper tries to instantiate the profile it can’t (of course!) find the constructor!

answered Oct 4, 2017 at 14:35

DaBeSoft's user avatar

DaBeSoftDaBeSoft

491 silver badge5 bronze badges

2

Using Costura.Fody 1.6 & 2.0:
After wasting a bunch of time looking into this same kind of error with all other potential solutions not working, I found that an older version of the DLL I was embedding was in the same directory I was running my newly compiled .exe from. Apparently it looks for a local file in the same directory first, then looks inward to its embedded library. Deleting the old DLL worked.

To be clear, it wasn’t that my reference was pointing to an old DLL, it was that a copy of an old DLL was in the directory I was testing my application from on a separate system from that which it was compiled on.

answered Apr 20, 2018 at 16:15

grep65535's user avatar

grep65535grep65535

431 silver badge6 bronze badges

1

In my case, the MissingMethodException was for a method that was in the same file!

However, I had just added a NuGet package that uses .Net Standard2 to my 4.7.1-targeting project, which caused a version conflict for System.Net.Http (4.7.1: version 4.0.0.0, the NuGet package using .NET Standard 2 wants 4.2.0.0). This seem to be known issues that should be better in 4.7.2 (see note 2).

I had used a binding redirect like this in all other my projects, because there were exceptions as soon as it tried to load the 4.2.0.0 which I didn’t have:

  <dependentAssembly>
    <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.0.0.0" />
  </dependentAssembly>

Except in this one project, where it seems it tries to load System.Net.Http only while calling a local function that uses a System.Net.Http.HttpResponseMessage as it’s parameter or return type (parameter during debugging, return type when I run the tests without the debugger, also a bit strange). And instead of showing a message that it could not load the 4.2.0.0 version of System.Net.Http, it returns this exception.

answered Oct 8, 2019 at 12:40

Legolas's user avatar

LegolasLegolas

8841 gold badge11 silver badges25 bronze badges

I had a similar scenario where I was getting this same exception being thrown. I had two projects in my web application solution, named, for sake of example, DAL and DAL.CustSpec. The DAL project had a method named Method1, but DAL.CustSpec did not. My main project had a reference to the DAL project and also a reference to another project named AnotherProj. My main project made a call to Method1. The AnotherProj project had a reference to the DAL.CustSpec project, and not the DAL project. The Build configuration had both the DAL and DAL.CustSpec projects configured to be built. After everything was built, my web application project had the AnotherProj and DAL assemblies in its Bin folder. However, when I ran the website, the Temporary ASP.NET folder for the website had the DAL.CustSpec assembly in its files and not the DAL assembly, for some reason. Of course, when I ran the part that called Method1, I received a «Method not found» error.

What I had to do to fix this error was to change the reference in the AnotherProj project from DAL.CustSpec to just DAL, deleted all the files in the Temporary ASP.NET Files folder, and then reran the website. After that, everything started working. I also made sure that the DAL.CustSpec project was not being built by unchecking it in the Build Configuration.

I thought I would share this in case it helps someone else in the future.

answered Mar 30, 2013 at 19:19

Ron Kanagy's user avatar

I came across the same situation in my ASP.NET website. I deleted the published files, restarted VS, cleaned and rebuild the project again. After the next publish, the error was gone…

answered Jul 8, 2015 at 9:54

Irshu's user avatar

IrshuIrshu

8,1988 gold badges53 silver badges64 bronze badges

I solved this problem by making a shelveset with my changes and running TFS Power Tools ‘scorch’ in my workspace (https://visualstudiogallery.msdn.microsoft.com/f017b10c-02b4-4d6d-9845-58a06545627f). Then I unshelved the changes and recompiled the project.
This way you will cleanup any ‘hanging-parties’ that may be around in your workspace and will startup with a fresh one.
This requires, of course, that you are using TFS.

answered Sep 17, 2015 at 8:30

fbastian's user avatar

Must be a reference bug from Microsoft.

I cleaned, rebuild on all my libraries and still got the same problem and couldnt resolve this.

All i did was close the Visual Studio Application and opened it again. That did the trick.

Its very frustrating that such a simple issue can take that long to fix because you wouldnt think that it will be something like that.

answered Jan 29, 2019 at 18:14

JayJay Barnard's user avatar

In my case, my project was referencing Microsoft.Net.Compilers.2.10.0. When I switched it to Microsoft.Net.Compilers.2.7.0, the error went away. What a mysterious error with such a variety of causes.

answered Feb 7, 2019 at 18:00

jaycer's user avatar

jaycerjaycer

2,9312 gold badges26 silver badges36 bronze badges

In my case it was a folder with olders DLLs of the same name that those wich were referenced in my .csproj file although the path was explicitly given they were somehow included therefore the several versions of the same DLLs were in conflict.

answered Feb 19, 2019 at 14:21

Alexandre Daubricourt's user avatar

This may have been mentioned already, but for me the problem was that the project was referencing 2 nuget packages, and each of those nuget packages referenced a different version of another nuget package.

So:

Project -> Nuget A -> Nuget X 1.1

Project -> Nuget B -> Nuget X 1.2

Both versions of Nuget X had the same extension method that was being called from Project.

When I updated both Nuget A & B to versions that referenced the same version of Nuget X, the error went away.

answered Dec 19, 2019 at 14:45

Shahin Dohan's user avatar

Shahin DohanShahin Dohan

5,9893 gold badges39 silver badges58 bronze badges

Possible case could be

Mismatched nuget assembles versions

Problem In Detail

We had more then one nuget packages being generated by a solution.

Class A in packageA 1.0

Class B in packageB 1.0

A is referring B

so when A and B both have update we have to update packageA and packageB, but issue was one of my team member did not update packageB

now PackageA 1.1 still has dependency on PackageB 1.0 But PackageB don’t have updated version of Class B

and hence it was not been able to find the method

Solution

Move both packages to +1 Version
in this case I moved

PackageA 1.1 -> PackageA 1.2

PackageB 1.0 -> PackageB 1.1

but to make matters more symmetrical to can move both to same Version

PackageA 1.1 -> PackageA 1.2

PackageB 1.0 -> PackageB 1.2

answered Apr 27, 2021 at 7:27

hanan's user avatar

hananhanan

1,7381 gold badge14 silver badges19 bronze badges

This happened to me using MVC4, and I decided after reading this thread to rename the object that was throwing the error.

I did a clean and rebuild and noted that it was skipping two projects. When I rebuilt one of them, there was an error where I’d started a function and not finished it.

So VS was referencing a model that I had rewritten without asking me if I wanted to do that.

answered Jan 20, 2015 at 17:09

TheWizardOfTN's user avatar

Just in case it helps anyone, although it’s an old issue, my problem was a bit odd.

I had this error while using Jenkins.

Eventually found out that the system date was manually set to a future date, which caused dll to be compiled with that future date. When the date was set back to normal, MSBuild interpreted that the file was newer and didn’t require recompile of the project.

answered Mar 16, 2015 at 19:04

Renato Chencinski's user avatar

I ran into this issue, and what it was for me was one project was using a List which was in Example.Sensors namespace and and another type implemented the ISensorInfo interface. Class Type1SensorInfo, but this class was one layer deeper in the namespace at Example.Sensors.Type1. When trying to deserialize Type1SensorInfo into the list, it threw the exception. When I added using Example.Sensors.Type1 into the ISensorInfo interface, no more exception!

namespace Example
{
    public class ConfigFile
    {
        public ConfigFile()
        {
            Sensors = new List<ISensorInfo<Int32>>();
        }
        public List<ISensorInfo<Int32>> Sensors { get; set; }
     }
   }
}

**using Example.Sensors.Type1; // Added this to not throw the exception**
using System;

namespace Example.Sensors
{
    public interface ISensorInfo<T>
    {
        String SensorName { get; }
    }
}

using Example.Sensors;

namespace Example.Sensors.Type1
{
    public class Type1SensorInfo<T> : ISensorInfo<T>
    {
        public Type1SensorInfo() 
    }
}

answered Aug 21, 2015 at 19:10

Steven Koxlien's user avatar

I’ve had the same thing happen when I had a number of MSBuild processes running in the background which had effectively crashed (they had references to old versions of code). I closed VS and killed all the MSBuild processes in process explorer and then recompiled.

answered Nov 26, 2015 at 15:43

bytedev's user avatar

bytedevbytedev

8,1423 gold badges48 silver badges56 bronze badges

I had a test project that references 2 other projects that each referenced different versions (in different locations) of the same dll. This confused the compiler.

answered Mar 1, 2017 at 23:25

nuander's user avatar

nuandernuander

1,3191 gold badge19 silver badges33 bronze badges

In my case spotify.exe was using the same port which my web api project wanted to use on a development machine. The port number was 4381.

I quit Spotify and everything worked well again :)

answered Mar 17, 2017 at 16:48

Arda Basoglu's user avatar

Arda BasogluArda Basoglu

1,4101 gold badge12 silver badges6 bronze badges

Previous working asp.net webforms app now throws this error:

System.MissingMethodException: Method not found

The DoThis method is on the same class and it should work.

I have a generic handler as such:

public class MyHandler: IHttpHandler
{
    public void Processrequest(HttpContext context)
    {
      // throws error now System.MissingMethodException: 
      // Method not found.
      this.DoThis(); 
    }

    public void DoThis(){ ... }
}

ΩmegaMan's user avatar

ΩmegaMan

29.2k10 gold badges99 silver badges121 bronze badges

asked Nov 9, 2011 at 0:09

user603007's user avatar

user603007user603007

11.3k38 gold badges103 silver badges167 bronze badges

3

This is a problem which can occur when there is an old version of a DLL still lingering somewhere around. Make sure that the latest assemblies are deployed and no duplicated older assemblies are hiding in certain folders. Your best bet would be to delete every built item and rebuild/redeploy the entire solution.

Luke Girvin's user avatar

Luke Girvin

13.2k9 gold badges63 silver badges84 bronze badges

answered Nov 9, 2011 at 2:10

Polity's user avatar

13

⚠️ Wrong Nuget Package Version ⚠️

I had a unit test project which was pulling in our companies internal EF Nuget data access package and that code pulled in an external package whose version was way behind the current version.

The issue was that the Nuget settings for the top level package was set to the least version; and the lower level/older version won, and that was used during the operations….

Hence it silently got the wrong version for a common assembly used by both the package and the app.


💡 Solution 💡

By Setting/updating the package in Nuget to use and [get] the latest, fixed the issue.

answered Mar 31, 2016 at 21:39

ΩmegaMan's user avatar

ΩmegaManΩmegaMan

29.2k10 gold badges99 silver badges121 bronze badges

3

I resolved this issue by installing the correct .NET Framework version on the server. The website was running under version 4.0 and the assembly it was calling to was compiled for 4.5. After installation of .NET Framework 4.5 and upgrading the website to 4.5, all works fine.

answered Jul 6, 2013 at 23:41

Ben Gripka's user avatar

Ben GripkaBen Gripka

15.9k6 gold badges45 silver badges41 bronze badges

2

Restarting Visual Studio actually fixed it for me. I’m thinking it was caused by old assembly files still in use, and performing a «Clean Build» or restarting VS should fix it.

wonea's user avatar

wonea

4,74317 gold badges85 silver badges139 bronze badges

answered Feb 12, 2015 at 3:26

Jelani's user avatar

JelaniJelani

7056 silver badges25 bronze badges

0

Check your References!

Be sure that you are consistently pointing to the same 3rd party libraries (don’t just trust versions, look at the path) across your solutions projects.

For example, If you use iTextSharp v.1.00.101 in one project and you NuGet or reference iTextSharp v1.00.102 somewhere else you will get these types of runtime errors that somehow trickle up into your code.

I changed my reference to iTextSharp in all 3 projects to point to the same DLL and everything worked.

answered Jan 24, 2017 at 9:19

Juls's user avatar

JulsJuls

6236 silver badges15 bronze badges

2

also.. try to «clean» your projects or solution and rebuild again!

answered Nov 12, 2013 at 22:47

user384080's user avatar

user384080user384080

4,57615 gold badges63 silver badges96 bronze badges

I had this happen to me with a file referenced in the same assembly, not a separate dll. Once I excluded the file from the project and then included it again, everything worked fine.

answered Aug 17, 2012 at 20:30

Josh Noe's user avatar

Josh NoeJosh Noe

2,6682 gold badges35 silver badges37 bronze badges

0

I just ran into this on a .NET MVC project. The root cause was conflicting versions of NuGet packages. I had a solution with several projects. Each of the projects had some NuGet packages. In one project I had a version of the Enterprise Library Semantic Logging package, and in two other projects (that reference the first) I had older versions of the same package. It all compiles without error, but it gave a mysterious «Method not found» error when I tried to use the package.

The fix was to remove the old NuGet packages from the two projects, so that it was only included in the one project that actually needed it. (Also I did a clean rebuild of the whole solution.)

answered May 1, 2014 at 22:35

Mark Meuer's user avatar

Mark MeuerMark Meuer

7,1516 gold badges43 silver badges64 bronze badges

If developing with your own NuGet server, make sure the assembly versions are all the same:

[assembly: AssemblyVersion("0.2.6")]
[assembly: AssemblyFileVersion("0.2.6")]
[assembly: AssemblyInformationalVersion("0.2.6")]

answered Aug 25, 2013 at 23:32

sennett's user avatar

sennettsennett

7,9849 gold badges46 silver badges69 bronze badges

2

Have you tried turning if off and on again? Jokes aside, restarting my computer was what actually did the trick for me and isn’t mentioned in any of the other answers.

answered Jan 22, 2014 at 9:44

Lee Bailey's user avatar

Lee BaileyLee Bailey

3,5642 gold badges18 silver badges17 bronze badges

I’ve just had this issue and it turned out that it was because I was referencing a previous version of the DLL from my UI project. Therefore, when compiling it was happy. But when running it was using the previous version of the DLL.

Check references on all other projects before assuming you need to rebuild/clean/redeploy your solutions.

answered Apr 6, 2016 at 13:36

Jamie Lupton's user avatar

It’s also possible the problem is with a parameter or return type of the method that’s reported missing, and the «missing» method per se is fine.

That’s what was happening in my case, and the misleading message made it take much longer to figure out the issue. It turns out the assembly for a parameter’s type had an older version in the GAC, but the older version actually had a higher version number due to a change in version numbering schemes used. Removing that older/higher version from the GAC fixed the problem.

answered Sep 5, 2017 at 21:16

Jimmy's user avatar

JimmyJimmy

414 bronze badges

In my case it was a copy/paste problem. I somehow ended up with a PRIVATE constructor for my mapping profile:

using AutoMapper;

namespace Your.Namespace
{
    public class MappingProfile : Profile
    {
        MappingProfile()
        {
            CreateMap<Animal, AnimalDto>();
        }
    }
}

(take note of the missing «public» in front of the ctor)

which compiled perfectly fine, but when AutoMapper tries to instantiate the profile it can’t (of course!) find the constructor!

answered Oct 4, 2017 at 14:35

DaBeSoft's user avatar

DaBeSoftDaBeSoft

491 silver badge5 bronze badges

2

Using Costura.Fody 1.6 & 2.0:
After wasting a bunch of time looking into this same kind of error with all other potential solutions not working, I found that an older version of the DLL I was embedding was in the same directory I was running my newly compiled .exe from. Apparently it looks for a local file in the same directory first, then looks inward to its embedded library. Deleting the old DLL worked.

To be clear, it wasn’t that my reference was pointing to an old DLL, it was that a copy of an old DLL was in the directory I was testing my application from on a separate system from that which it was compiled on.

answered Apr 20, 2018 at 16:15

grep65535's user avatar

grep65535grep65535

431 silver badge6 bronze badges

1

In my case, the MissingMethodException was for a method that was in the same file!

However, I had just added a NuGet package that uses .Net Standard2 to my 4.7.1-targeting project, which caused a version conflict for System.Net.Http (4.7.1: version 4.0.0.0, the NuGet package using .NET Standard 2 wants 4.2.0.0). This seem to be known issues that should be better in 4.7.2 (see note 2).

I had used a binding redirect like this in all other my projects, because there were exceptions as soon as it tried to load the 4.2.0.0 which I didn’t have:

  <dependentAssembly>
    <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.0.0.0" />
  </dependentAssembly>

Except in this one project, where it seems it tries to load System.Net.Http only while calling a local function that uses a System.Net.Http.HttpResponseMessage as it’s parameter or return type (parameter during debugging, return type when I run the tests without the debugger, also a bit strange). And instead of showing a message that it could not load the 4.2.0.0 version of System.Net.Http, it returns this exception.

answered Oct 8, 2019 at 12:40

Legolas's user avatar

LegolasLegolas

8841 gold badge11 silver badges25 bronze badges

I had a similar scenario where I was getting this same exception being thrown. I had two projects in my web application solution, named, for sake of example, DAL and DAL.CustSpec. The DAL project had a method named Method1, but DAL.CustSpec did not. My main project had a reference to the DAL project and also a reference to another project named AnotherProj. My main project made a call to Method1. The AnotherProj project had a reference to the DAL.CustSpec project, and not the DAL project. The Build configuration had both the DAL and DAL.CustSpec projects configured to be built. After everything was built, my web application project had the AnotherProj and DAL assemblies in its Bin folder. However, when I ran the website, the Temporary ASP.NET folder for the website had the DAL.CustSpec assembly in its files and not the DAL assembly, for some reason. Of course, when I ran the part that called Method1, I received a «Method not found» error.

What I had to do to fix this error was to change the reference in the AnotherProj project from DAL.CustSpec to just DAL, deleted all the files in the Temporary ASP.NET Files folder, and then reran the website. After that, everything started working. I also made sure that the DAL.CustSpec project was not being built by unchecking it in the Build Configuration.

I thought I would share this in case it helps someone else in the future.

answered Mar 30, 2013 at 19:19

Ron Kanagy's user avatar

I came across the same situation in my ASP.NET website. I deleted the published files, restarted VS, cleaned and rebuild the project again. After the next publish, the error was gone…

answered Jul 8, 2015 at 9:54

Irshu's user avatar

IrshuIrshu

8,1988 gold badges53 silver badges64 bronze badges

I solved this problem by making a shelveset with my changes and running TFS Power Tools ‘scorch’ in my workspace (https://visualstudiogallery.msdn.microsoft.com/f017b10c-02b4-4d6d-9845-58a06545627f). Then I unshelved the changes and recompiled the project.
This way you will cleanup any ‘hanging-parties’ that may be around in your workspace and will startup with a fresh one.
This requires, of course, that you are using TFS.

answered Sep 17, 2015 at 8:30

fbastian's user avatar

Must be a reference bug from Microsoft.

I cleaned, rebuild on all my libraries and still got the same problem and couldnt resolve this.

All i did was close the Visual Studio Application and opened it again. That did the trick.

Its very frustrating that such a simple issue can take that long to fix because you wouldnt think that it will be something like that.

answered Jan 29, 2019 at 18:14

JayJay Barnard's user avatar

In my case, my project was referencing Microsoft.Net.Compilers.2.10.0. When I switched it to Microsoft.Net.Compilers.2.7.0, the error went away. What a mysterious error with such a variety of causes.

answered Feb 7, 2019 at 18:00

jaycer's user avatar

jaycerjaycer

2,9312 gold badges26 silver badges36 bronze badges

In my case it was a folder with olders DLLs of the same name that those wich were referenced in my .csproj file although the path was explicitly given they were somehow included therefore the several versions of the same DLLs were in conflict.

answered Feb 19, 2019 at 14:21

Alexandre Daubricourt's user avatar

This may have been mentioned already, but for me the problem was that the project was referencing 2 nuget packages, and each of those nuget packages referenced a different version of another nuget package.

So:

Project -> Nuget A -> Nuget X 1.1

Project -> Nuget B -> Nuget X 1.2

Both versions of Nuget X had the same extension method that was being called from Project.

When I updated both Nuget A & B to versions that referenced the same version of Nuget X, the error went away.

answered Dec 19, 2019 at 14:45

Shahin Dohan's user avatar

Shahin DohanShahin Dohan

5,9893 gold badges39 silver badges58 bronze badges

Possible case could be

Mismatched nuget assembles versions

Problem In Detail

We had more then one nuget packages being generated by a solution.

Class A in packageA 1.0

Class B in packageB 1.0

A is referring B

so when A and B both have update we have to update packageA and packageB, but issue was one of my team member did not update packageB

now PackageA 1.1 still has dependency on PackageB 1.0 But PackageB don’t have updated version of Class B

and hence it was not been able to find the method

Solution

Move both packages to +1 Version
in this case I moved

PackageA 1.1 -> PackageA 1.2

PackageB 1.0 -> PackageB 1.1

but to make matters more symmetrical to can move both to same Version

PackageA 1.1 -> PackageA 1.2

PackageB 1.0 -> PackageB 1.2

answered Apr 27, 2021 at 7:27

hanan's user avatar

hananhanan

1,7381 gold badge14 silver badges19 bronze badges

This happened to me using MVC4, and I decided after reading this thread to rename the object that was throwing the error.

I did a clean and rebuild and noted that it was skipping two projects. When I rebuilt one of them, there was an error where I’d started a function and not finished it.

So VS was referencing a model that I had rewritten without asking me if I wanted to do that.

answered Jan 20, 2015 at 17:09

TheWizardOfTN's user avatar

Just in case it helps anyone, although it’s an old issue, my problem was a bit odd.

I had this error while using Jenkins.

Eventually found out that the system date was manually set to a future date, which caused dll to be compiled with that future date. When the date was set back to normal, MSBuild interpreted that the file was newer and didn’t require recompile of the project.

answered Mar 16, 2015 at 19:04

Renato Chencinski's user avatar

I ran into this issue, and what it was for me was one project was using a List which was in Example.Sensors namespace and and another type implemented the ISensorInfo interface. Class Type1SensorInfo, but this class was one layer deeper in the namespace at Example.Sensors.Type1. When trying to deserialize Type1SensorInfo into the list, it threw the exception. When I added using Example.Sensors.Type1 into the ISensorInfo interface, no more exception!

namespace Example
{
    public class ConfigFile
    {
        public ConfigFile()
        {
            Sensors = new List<ISensorInfo<Int32>>();
        }
        public List<ISensorInfo<Int32>> Sensors { get; set; }
     }
   }
}

**using Example.Sensors.Type1; // Added this to not throw the exception**
using System;

namespace Example.Sensors
{
    public interface ISensorInfo<T>
    {
        String SensorName { get; }
    }
}

using Example.Sensors;

namespace Example.Sensors.Type1
{
    public class Type1SensorInfo<T> : ISensorInfo<T>
    {
        public Type1SensorInfo() 
    }
}

answered Aug 21, 2015 at 19:10

Steven Koxlien's user avatar

I’ve had the same thing happen when I had a number of MSBuild processes running in the background which had effectively crashed (they had references to old versions of code). I closed VS and killed all the MSBuild processes in process explorer and then recompiled.

answered Nov 26, 2015 at 15:43

bytedev's user avatar

bytedevbytedev

8,1423 gold badges48 silver badges56 bronze badges

I had a test project that references 2 other projects that each referenced different versions (in different locations) of the same dll. This confused the compiler.

answered Mar 1, 2017 at 23:25

nuander's user avatar

nuandernuander

1,3191 gold badge19 silver badges33 bronze badges

In my case spotify.exe was using the same port which my web api project wanted to use on a development machine. The port number was 4381.

I quit Spotify and everything worked well again :)

answered Mar 17, 2017 at 16:48

Arda Basoglu's user avatar

Arda BasogluArda Basoglu

1,4101 gold badge12 silver badges6 bronze badges

Hi. I have read #6865, #6855, and https://blogs.msdn.microsoft.com/dotnet/2016/10/25/announcing-entity-framework-core-1-1-preview-1/ from the release.

I am trying to run Scaffold-DbContext "Server=(A);Database=B;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Verbose

I am getting the error Method Not Found as per the title (full error at the bottom). To try and resolve this I have

  • updated the listed packages as detailed in the release blog.
  • Kept using netcore 1.0.0
  • run dotnet restore (many times)
  • restarted VS and my machine (many times)

I have read that I may need to delete the Entity Framework directory under %USERPROFILE%/.nuget … but that seems a bit drastic.

Below is my project.json … I think I a missing something small and would appreciate any pointers to help through this. I did try rolling back to preview2-final on tools but it all seems to have gone a bit wrong.

`{
«dependencies»: {
«Microsoft.AspNetCore.Authentication»: «1.0.0»,
«Microsoft.AspNetCore.Authentication.Cookies»: «1.0.0»,
«Microsoft.AspNetCore.Authorization»: «1.0.0»,
«Microsoft.AspNetCore.Diagnostics»: «1.0.0»,
«Microsoft.AspNetCore.Identity»: «1.0.0»,
«Microsoft.AspNetCore.Mvc»: «1.0.1»,
«Microsoft.AspNetCore.Razor.Tools»: {
«version»: «1.0.0-preview2-final»,
«type»: «build»
},
«Microsoft.AspNetCore.Routing»: «1.0.1»,
«Microsoft.AspNetCore.Server.IISIntegration»: «1.0.0»,
«Microsoft.AspNetCore.Server.Kestrel»: «1.0.1»,
«Microsoft.AspNetCore.Session»: «1.0.0»,
«Microsoft.AspNetCore.StaticFiles»: «1.0.0»,
«Microsoft.EntityFrameworkCore.Design»: «1.0.1»,
«Microsoft.EntityFrameworkCore.SqlServer»: «1.1.0-preview1-final»,
«Microsoft.EntityFrameworkCore.SqlServer.Design»: «1.1.0-preview1-final»,
«Microsoft.EntityFrameworkCore.Tools.DotNet»: «1.0.0-preview3-final»,
«Microsoft.Extensions.Configuration.EnvironmentVariables»: «1.0.0»,
«Microsoft.Extensions.Configuration.Json»: «1.0.0»,
«Microsoft.Extensions.Logging»: «1.1.0-preview1-final»,
«Microsoft.Extensions.Logging.Console»: «1.0.0»,
«Microsoft.Extensions.Logging.Debug»: «1.0.0»,
«Microsoft.Extensions.Options.ConfigurationExtensions»: «1.0.0»,
«Microsoft.NETCore.App»: {
«version»: «1.0.1»,
«type»: «platform»
},
«Microsoft.VisualStudio.Web.BrowserLink.Loader»: «14.0.0»,
«Microsoft.VisualStudio.Web.CodeGeneration.Tools»: {
«version»: «1.0.0-preview2-final»,
«type»: «build»
},
«Microsoft.VisualStudio.Web.CodeGenerators.Mvc»: {
«version»: «1.0.0-preview2-final»,
«type»: «build»
}
},

«tools»: {
«BundlerMinifier.Core»: «2.0.238»,
«Microsoft.AspNetCore.Razor.Tools»: «1.0.0-preview2-final»,
«Microsoft.AspNetCore.Server.IISIntegration.Tools»: «1.0.0-preview2-final»,
«Microsoft.VisualStudio.Web.CodeGeneration.Tools»: {
«version»: «1.0.0-preview2-final»,
«imports»: [
«portable-net45+win8»
]
}
},

«frameworks»: {
«netcoreapp1.0»: {
«imports»: [
«dotnet5.6»,
«portable-net45+win8»
]
}
},

«buildOptions»: {
«emitEntryPoint»: true,
«preserveCompilationContext»: true
},

«runtimeOptions»: {
«configProperties»: {
«System.GC.Server»: true
}
},

«publishOptions»: {
«include»: [
«wwwroot»,
«**/*.cshtml»,
«appsettings.json»,
«web.config»
]
},

«scripts»: {
«prepublish»: [ «bower install», «dotnet bundle» ],
«postpublish»: [ «dotnet publish-iis —publish-folder %publish:OutputPath% —framework %publish:FullTargetFramework%» ]
}
}
`
and here is the full error message …

System.MissingMethodException: Method not found: 'System.String Microsoft.EntityFrameworkCore.Metadata.Internal.EntityTypeExtensions.DisplayName(Microsoft.EntityFrameworkCore.Metadata.IEntityType)'. at Microsoft.EntityFrameworkCore.Scaffolding.Internal.StringBuilderCodeWriter.WriteCodeAsync(ModelConfiguration modelConfiguration, String outputPath, String dbContextClassName, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Scaffolding.Internal.ReverseEngineeringGenerator.GenerateAsync(ReverseEngineeringConfiguration configuration, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Design.Internal.DatabaseOperations.ScaffoldContextAsync(String provider, String connectionString, String outputDir, String dbContextClassName, IEnumerable1 schemas, IEnumerable1 tables, Boolean useDataAnnotations, Boolean overwriteFiles, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Design.OperationExecutor.<ScaffoldContextImpl>d__22.MoveNext() at System.Collections.Generic.EnumerableHelpers.ToArray[T](IEnumerable1 source, Int32& length)
at System.Collections.Generic.EnumerableHelpers.ToArray[T](IEnumerable1 source) at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.<>c__DisplayClass4_01.b__0()
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)`

You might have had a situation where your code once worked fine in ASP.NET application but now throws the below error.

System.MissingMethodException: Method not found

I have noticed this more recently in the Outsystems Web Application.

One of the main reason for this error is that there is an old version of the DLL that might be referenced or still been used somewhere with your code.

To fix the Method not found error in C#, ensure that the latest assemblies are deployed and no duplicate or older assemblies are existing in any of the sub folders with-in your application.

When Deploying, also purge the entire folder before you deploy your .NET application.

I am getting the following error when running unit tests:

System.MissingMethodException: Method not found

I first got the error a week or so ago when I tried to test a generic method. I decided maybe VS testing just wasn’t capable of testing generics so I walked away from it. Today, I wrote a new method in the same class where the generic method resides and I still get the «System.MissingMethodException: Method not found» error. I decided to write this simple method to get down to basics:

Public Sub testingxyz(ByVal x As String)

Console.Write(x)

End Sub

but the problem persists. I put the method in a differect class to get it as far away from my generic methods as possible but that didn’t help either.

This is particularly odd because before I run the test intellisense recognizes that my new method exists and when I check the pdb file (located in my C:<projectname>TestResults<username>_<workstationname> <date> <time>Out  directory) for the DLL that I am testing I see that the method was included in the pdb information because I can find testingxyz within the text in the PDB. The PDB & DLL have a timestamp for the current date & time so they seem current.

The one thing that worries me is that my DLL (TST.Core.DLL) is referenced by some of the macros that I have written and thus a copy of the DLL also resides in C:Program FilesMicrosoft Visual Studio 8Common7IDEPublicAssemblies and perhaps that means that some older version of that DLL is running in memory. I have added a post build event on the TST.Core.DLL so that it gets copied to the PublicAssemblies directory and the timestamp on that file matches the timestamp on the DLL in my TestResults…out directory so it seems that the DLL in the PublicAssemblies directory is not locked and is up to date.

Also, I have an ASP.Net project that references TST.Core.dll and that project will not compile because it says that a (different but relatively new) method in TST.Core does not exist. Of course, at design time intellisense recognizes the method so it seems that it should compile. I’ve dropped & re-added the reference to TST.Core.dll but that has not resolved the issue.

I have tried restarting VS05 and my machine.

I have tried full rebuilds.

I have tried to build individual projects 1 at a time and they all succeed except the web project.

I gave VS05 a week off.

I am stumped.

Does anyone have a suggestion?

  • Ошибка met iveco eurocargo что это
  • Ошибка microsoft visual c runtime library гта сан андреас
  • Ошибка microsoft visual c runtime library skyrim
  • Ошибка message при запуске serious sam 4
  • Ошибка microsoft visual c runtime library program c