2008-12-02 5 views
8

Gibt es eine clevere Möglichkeit, den Installationspfad zu öffnen, wenn Sie innerhalb einer DLL (C#) arbeiten, die von einer Anwendung in einem anderen Ordner aufgerufen wird?Wie erhalte ich das Installationsverzeichnis in C# nach der Bereitstellung der DLL?

Ich entwickle ein Add-in für eine Anwendung. Mein Add-In ist in C# geschrieben. Die Anwendung, die verwendet wird, ist in C geschrieben und muss einige Sachen während der Auswertung kompilieren, so habe ich eine Middlestep mit einer C++ - DLL, die das Interop-Geschäft mit C# behandelt und nur eine saubere Schnittstelle nach außen zeigt, mit der C arbeiten kann.

Was ich bereitstellen wird eine Reihe von DLLs und eine .lib und .h für den C++ Teil (manchmal statische Bindung wird notwendig sein).

Beim Versuch, die Einrichtung und die Info aktuellen Verzeichnisses aus dem C# dll Ausdrucken mit:

 Console.WriteLine(Directory.GetCurrentDirectory()); 

oder:

 Console.WriteLine(System.Environment.CurrentDirectory); 

ich den Pfad ausführbaren Dateien.

Also ... noch einmal, wie bekomme ich den Installationspfad meiner DLL?

Edit: Sie beide arbeiteten! Danke für die schnelle Antwort Jungs!

Antwort

11

Ich denke, was Sie wollen, ist Assembly.GetExecutingAssembly().Location.

3

Versuchen Sie folgendes:

typeof(TypeInMyModule).Assembly.Location 
2

Einer dieser zwei Möglichkeiten:

using System.IO; 
using System.Windows.Forms; 
string appPath = Path.GetDirectoryName(Application.ExecutablePath); 

Oder:

using System.IO; 
using System.Reflection; 
string path = Path.GetDirectoryName(
Assembly.GetAssembly(typeof(MyClass)).CodeBase); 
Verwandte Themen