tags:

views:

125

answers:

4

Long story short: We've got a system that we're moving from one server to another. At this point, the only issue is that there's an assembly missing on the new box. On the old box, we can see the assembly name, but for the life of us we can't figure out which dll the code is physically in so we can move it to the new box.

Is there some snazzy .net assembly widget that will tell you?

+2  A: 

did you try reflector?

Fredou
+7  A: 

I would use the .NET Reflector to load the main application , then look in the References section to see which assemblies are being referenced.

Chris Thompson
+2  A: 

The assembly name should be the same as the DLL name. (Well, the DLL will have ".dll" on the end of course.) The assembly name is how the CLR works out which file to load!

Do you mean you can see the namespace used for some of the types?

Jon Skeet
AHA! I didn't know that was an actual rule. Excellent, thanks!
Electrons_Ahoy
I don't think it is a law, more a rule of thumb. i used to load plugin classes from any and all .dll files in a given directory, iterating through multiple namespaces per file, and since a file has only one name...
Kris
@Kris: Assembly name => filename is a rule (the CLR tries .dll and .exe, with variations for satellite assemblies etc). Namespace => assembly name is just a convention. Big difference :)
Jon Skeet
That's pretty much exactly what i was trying to say. :)
Kris
A: 

For running code you could start up Process Explorer and in the lower panel look at DLLs, the columns include the path to where a given assembly is loaded from

soren.enemaerke