2009-05-27 20 views
12

Ich versuche den Pfad einer DLL zu kennen .... mehrere Sites sagen, dass ive System.Reflection.Assembly.GetExecutingAssembly() verwenden soll. Location ABER gibt einen Pfad in C: \ Windows \ zurück Microsoft.Net ... etc ... \ file.dllRufen Sie den Assembly-Pfad ab C#

und ich will c: \ MyProyect \ MiWeb \ Bin \ file.dll

jede mögliche Hilfe?

+1

dies für ein Web-Projekt? –

+0

Können Sie die tatsächlichen Montagepfade, die Sie erhalten und die Sie möchten, veröffentlichen? Ie. die vollständigen Pfade mit den echten Assemblynamen. Veröffentlichen Sie außerdem den Code für die Methode, die versucht, den Assembly-Pfad zu ermitteln. –

Antwort

21

Sie können dies mit tun:

string file = (new System.Uri(Assembly.GetExecutingAssembly().CodeBase)).LocalPath; 
3

Der Speicherort der Assembly ändert sich basierend auf Weiterleitungen und Schattenkopie. Versuchen Sie stattdessen, die Codebase-Eigenschaft zu verwenden.

1

Das kann tatsächlich der Pfad sein, den das Programm verwendet ... IIRC, Es beginnt die Suche nach dem Methodenaufruf in der GAC vor dem Standard auf das Arbeitsverzeichnis.

0

Sind Sie sicher, dass Sie in Ihrem Projekt auf die richtige Baugruppe verwiesen haben? Klingt so, als ob Sie eine "Standard" -Assembly verwenden, da sie sich im .NET-Ordner befindet.

Verwandte Themen