TypeLoadException was unhandled in C#

前端 未结 2 933
广开言路
广开言路 2021-01-04 08:44

I\'m fairly new to C#, and am having a problem when loading a library into my program. Im trying to run this example in visual studio, but I am getting an error:

<         


        
相关标签:
2条回答
  • 2021-01-04 08:46

    EDIT: Okay, due to your answer, I've now managed to reproduce the problem without SVM. Basically, you shouldn't have two assemblies with the same name, one in a .exe and one in a .dll. Here's an example:

    Library.cs:

    public class Library
    {
        public static void Foo()
        {
            System.Console.WriteLine("Library.Foo");
        }
    }
    

    Test.cs:

    public class Test
    {
        static void Main(string[] args)
        {
            Library.Foo();
        }
    }
    

    Compile:

    > csc /target:library /out:Test.dll Library.cs
    > csc /r:Test.dll Test.cs
    

    Run:

    > test.exe
    
    Unhandled Exception: System.TypeLoadException: Could not load type 'Library' from
    assembly 'Test, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'.+
        at Test.Main(String[] args)
    

    It's already loaded an assembly called Test from Test.exe... so it's not going to also look for Test.dll.

    0 讨论(0)
  • 2021-01-04 09:00

    I wanted to add this as a comment (but not high enough rep yet) - I had this exact issue and found @JonSkeet answer really useful, between myself and a colleague we stumbled on the answer;

    https://stackoverflow.com/a/13236893/692942.

    Basically my project assembly which generated an EXE file was named the same as a referenced assembly I built as a class library. The combination of the EXE and DLL in the build directory cause the error to be thrown as only one assembly of that name could be loaded.

    0 讨论(0)
提交回复
热议问题