Come ottenere il percorso eseguibile da una DLL gestita
-
02-07-2019 - |
Domanda
Ho una DLL gestita (scritta in C ++ / CLI) che contiene una classe utilizzata da un eseguibile C #. Nel costruttore della classe, ho bisogno di accedere al percorso completo dell'eseguibile che fa riferimento alla DLL. Nell'app effettiva so di poter usare l'oggetto Application per farlo, ma come posso farlo da una DLL gestita?
Soluzione
Assembly.GetCallingAssembly()
o
Assembly.GetExecutingAssembly()
o
Assembly.GetEntryAssembly()
A seconda delle necessità.
Quindi usa la proprietà Location o CodeBase (non ricordo mai quale).
Altri suggerimenti
@leppie: Grazie - era il puntatore di cui avevo bisogno.
Per riferimento futuro, in C ++ / CLI questa è la sintassi effettiva che funziona:
String^ appPathString = Assembly::GetEntryAssembly()->Location;
GetExecutingAssembly ()
ha fornito il nome della DLL
GetCallingAssembly ()
ha restituito qualcosa come System.Windows.Forms
GetEntryAssembly
ha restituito il percorso completo, simile a GetModulePath ()
in Win32.