Como faço para obter o caminho da montagem em que o código está?
Existe uma maneira de obter o caminho para a montagem em que o código atual reside? Eu não quero o caminho da assembléia que chama, apenas aquele que contém o código.
Basicamente o meu teste de unidade precisa ler alguns arquivos de teste xml que estão localizados em relação à dll. Eu quero que o caminho seja sempre resolvido corretamente, independente da dll de teste ser executada a partir do TestDriven.NET, da GUI MbUnit ou qualquer outra coisa.
**Editar***: As pessoas parecem estar a interpretar mal o que eu'estou a perguntar.
A minha biblioteca de testes está localizada, por exemplo, em
C:PROJECTOS DE MEU APLICACIONAMENTO DE PROJECTOS.dll
e eu gostaria de conseguir este caminho:
C:projectos de aplicação dos meus projectos em depuração.
As três sugestões até agora falharam-me quando fugi da MbUnit Gui:
-
Ambiente.CurrentDirectory dá c:Arquivos de programa\i1MbUnidade
-
Sistema.Reflection.Assembly.GetAssembly(typeof(DaoTests)).Location`` dá C:\Documentos e Configurações\george\Local Configurações\Temp\ ....\DaoTests.dll
-
Sistema.Reflection.Assembly.GetExecutingAssembly().Location
dá o mesmo que o anterior.
Isto ajuda?
Isto deve funcionar, a menos que a montagem seja sombra copiada:
O diretório atual onde você existe.
Se você copiar o arquivo .xml com o build, você deve encontrá-lo.
ou