2016-07-06 17 views
0

Ich habe eine ausführbare Datei, die eine andere Klassenbibliothek DLL mithilfe von Reflektion lädt. Innerhalb dieser Klassenbibliothek möchte ich herausfinden, was der physische Pfad der Klassenbibliothek ist. Ich möchte die ausführende Assembly nicht, da dies die ursprüngliche ausführbare Datei ist.So erhalten Sie den aktuellen physischen Pfad einer reflektierten Assembly

Eg die exe könnte in C: \ Programme \ und der Klassenbibliothek sein könnte c: \ Bibliotheken \ Remote Assembly1.dll \

Innerhalb einer Methode innerhalb Assembly1.dll Ich brauche etwas zu nennen, die mich zurück

c: \ Bibliotheken \ remote \

ich habe versucht,

var currentLocation = Assembly.GetAssembly(GetType()).Location; 

Aber das scheint nicht zu funktionieren. Wie kann ich das machen?

+4

Mögliche Duplikat [Wie erhalte ich den Pfad der Montage der Code in ist?] (Http://stackoverflow.com/questions/52797/how-do- i-get-the-Pfad-der-Assembly-der-Code-ist-in) – thehennyy

+0

Das spricht über GetExecutingAssembly was ist nicht was ich will. – NZJames

+0

Sie können diesen Ansatz für jedes 'Assembly'-Objekt verwenden. Es spielt keine Rolle, woher du es hast. – thehennyy

Antwort

0

verwende ich diese Art und Weise die aktuelle Klasse Montage Weg zu bekommen:

var dllPath = new Uri(this.GetType().Assembly.GetName().CodeBase).LocalPath; 
0

Hier ist eine Art, wie ich es tun. "assembly" ist der geladenen DLL

assembly.Location.Replace(assembly.GetName().Name + ".dll", "") 
Verwandte Themen