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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top