views:

1653

answers:

4

Hello,

Im trying to know the path of a dll.... several sites says that ive to use System.Reflection.Assembly.GetExecutingAssembly().Location BUT it returns a path in C:\Windows\Microsoft.Net ... etc... \File.Dll

and i want c:\MyProyect\MiWeb\Bin\File.Dll

any help ?

+3  A: 

The Location of the assembly changes based on redirects and shadow copy. Try using the Codebase property instead.

Paul Alexander
+1  A: 

That may actually be the path the program is using... IIRC, It starts out searching for the method call in the GAC before defaulting to the working directory.

Ian Jacobs
A: 

Are you sure you have referenced the right assembly in your project? Sounds like you are using some "default" assembly since it is located in the .NET folder.

erikric
+4  A: 

You can do this using:

string file = (new System.Uri(Assembly.GetExecutingAssembly().CodeBase)).AbsolutePath;
Reed Copsey