Question

J'ai une DLL gérée (écrite en C ++ / CLI) contenant 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 le faire, mais comment puis-je le faire à partir d'une DLL gérée?

Était-ce utile?

La solution

Assembly.GetCallingAssembly()

ou

Assembly.GetExecutingAssembly()

ou

Assembly.GetEntryAssembly()

En fonction de vos besoins.

Utilisez ensuite la propriété Location ou CodeBase (je ne me souviens jamais de laquelle).

Autres conseils

@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 () a fourni le nom de la DLL

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

GetEntryAssembly a renvoyé le chemin complet, similaire à GetModulePath () sous Win32.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top