/ / Comment obtenir le chemin de l'exécutable à partir d'une DLL gérée - dll, chemin, c ++ - cli, exécutable

Comment obtenir le chemin de l'exécutable à partir d'une DLL gérée - dll, chemin, c ++ - cli, exécutable

J'ai une DLL gérée (écrite en C ++ / CLI) quicontient une classe utilisée par un exécutable C #. Dans le constructeur de la classe, je dois accéder au chemin complet de l'exécutable référençant la DLL. Dans l'application réelle, je sais que je peux utiliser l'objet Application pour ce faire, mais comment puis-je le faire à partir d'une DLL gérée?

Réponses:

14 pour la réponse № 1
Assembly.GetCallingAssembly()

ou

Assembly.GetExecutingAssembly()

ou

Assembly.GetEntryAssembly()

En fonction de vos besoins.

Ensuite, utilisez la propriété Location ou CodeBase (je ne me rappelle jamais lequel).


5 pour la réponse № 2

@leppie: Merci - c'était le pointeur dont j'avais besoin.

Pour référence future, en C ++ / CLI, c'est la syntaxe réelle qui fonctionne:

String^ appPathString = Assembly::GetEntryAssembly()->Location;

GetExecutingAssembly() fourni le nom de la DLL

GetCallingAssembly() a retourné quelque chose comme System.Windows.Forms

GetEntryAssembly retourné le chemin complet, semblable à GetModulePath() sous Win32.