Qual é a melhor maneira de obter o caminho do exe em execução no .NET?

Do programa a.exe localizado em c: / dir eu preciso abrir o arquivo de texto c: /dir/text.txt. Eu não sei onde a.exe poderia ser localizado, mas text.txt sempre estará no mesmo caminho. Como obter o nome do assembly atualmente em execução de dentro para programar-se para que eu possa acessar o arquivo de texto?

EDITAR: e se a.exe for um serviço do Windows? Não tem aplicação, pois não é um aplicativo do Windows.

Desde já, obrigado.

questionAnswers(7)

yourAnswerToTheQuestion