views:

674

answers:

2

I have "mycomp.myassembly.dll" in GAC but Load and LoadFrom throws file not found exception and LoadWithPartialName returns null. I'm doing the following:

    AssemblyName name = new AssemblyName();
    name.Name = "mycomp.myassembly.dll";

    Assembly assembly = Assembly.Load(name);

fails with FileNotFound for mycomp.myassembly.dll file, and

    Assembly assembly = Assembly.Load("mycomp.myassembly.dll");

fails with exactly the same message.

I double checked that assembly is in GAC (and even did gacutil /if for it again) and it does work in all other cases, I just unable to load it myself.

What am I doing wrong here? Do I miss something?

+6  A: 

Have you tried using the fully qualified assembly name? (e.g. "ycomp.myassembly.dll, Version=1.0.2004.0, Culture=neutral, PublicKeyToken=8744b20f8da049e3")

Arnold Zokas
This helped, thank you! :)
Artem
A: 

try simply loading with the full name

 // You must supply a valid fully qualified assembly name.            
        Assembly SampleAssembly = Assembly.Load
            ("SampleAssembly, Version=1.0.2004.0, Culture=neutral, PublicKeyToken=8744b20f8da049e3");

I can usually load without the version, culture and public key.

Sky Sanders
I think the public key would be needed, without the public key it's treated as an entirely different assembly. All assemblies in the GAC will have a public key.
erikkallen
you are right. i was brain farting and thinking of loading local assemblies
Sky Sanders