Pergunta

Eu tenho uma DLL gerenciada (escrito em C ++ / CLI) que contém uma classe usada por um C # executável. No construtor da classe, eu preciso ter acesso ao caminho completo do executável referenciando a DLL. No aplicativo real Eu sei que eu posso usar o objeto Application para fazer isso, mas como posso fazê-lo a partir de um gerenciado DLL?

Foi útil?

Solução

Assembly.GetCallingAssembly()

ou

Assembly.GetExecutingAssembly()

ou

Assembly.GetEntryAssembly()

Dependendo da sua necessidade.

Em seguida, use Localização ou CodeBase propriedade (nunca me lembro qual).

Outras dicas

@leppie: Graças - que foi o ponteiro que eu precisava.

Para referência futura, em C ++ / CLI esta é a sintaxe real que funciona:

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

GetExecutingAssembly() forneceu o nome da DLL

GetCallingAssembly() retornou algo como System.Windows.Forms

GetEntryAssembly devolveu o caminho completo, semelhante ao GetModulePath() sob Win32.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top