2008-12-02 3 views
8

Existe-t-il un moyen intelligent de récupérer le chemin d'installation lorsque vous travaillez dans une DLL (C#) qui sera appelée à partir d'une application dans un dossier différent?Comment faire pour obtenir le répertoire d'installation en C# après le déploiement de dll

Je développe un complément pour une application. Mon complément est écrit en C#. L'application qui sera utilisée est écrite en C et doit compiler certaines choses pendant l'évaluation, donc j'ai une middlestep avec une DLL C++ qui gère l'interopérabilité avec C# et montre seulement une interface propre avec laquelle C peut travailler. Ce que je déploie sera un ensemble de fichiers .dll et .lib et .h pour la partie C++ (parfois une liaison statique sera nécessaire).

Lorsque vous essayez la configuration et imprimer les informations de répertoire actuel de la dll C# avec:

 Console.WriteLine(Directory.GetCurrentDirectory()); 

ou:

 Console.WriteLine(System.Environment.CurrentDirectory); 

je reçois le chemin de executables.

Alors ... encore une fois, comment puis-je obtenir le chemin d'installation de ma DLL?

Edit: Ils ont tous deux travaillé! Merci pour la réponse rapide les gars!

Répondre

11

Je pense que ce que vous voulez est Assembly.GetExecutingAssembly().Location.

3

Essayez ceci:

typeof(TypeInMyModule).Assembly.Location 
2

L'un de ces deux façons:

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

Ou:

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