Existe uma maneira de obter o caminho para o assembly no qual o código atual reside? Eu não quero o caminho do assembly de chamada, apenas aquele que contém o código.
Basicamente, meu teste de unidade precisa ler alguns arquivos de teste xml que estão localizados em relação à dll. Quero que o caminho seja sempre resolvido corretamente, independentemente de a dll de teste ser executada no TestDriven.NET, na GUI do MbUnit ou em qualquer outra coisa.
Edit : As pessoas parecem estar entendendo mal o que estou perguntando.
Minha biblioteca de teste está localizada em digamos
C: \ projetos \ myapplication \ daotests \ bin \ Debug \ daotests.dll
e eu gostaria de pegar esse caminho:
C: \ projetos \ myapplication \ daotests \ bin \ Debug \
Até agora, as três sugestões falham quando executo o MbUnit Gui:
Environment.CurrentDirectory
fornece c: \ Arquivos de programas \ MbUnitSystem.Reflection.Assembly.GetAssembly(typeof(DaoTests)).Location
fornece C: \ Documents and Settings \ george \ Configurações locais \ Temp \ .... \ DaoTests.dllSystem.Reflection.Assembly.GetExecutingAssembly().Location
dá o mesmo que o anterior.
packages
ao lado do arquivo sln. Mas quando você compila e distribui coisas, não há arquivo sln nem diretório de pacotes. Durante a compilação, as coisas necessárias (mas não tudo) são copiadas no diretório bin. Sua melhor aposta é usar um script postbuild para copiar o arquivo que você deseja.