Obtendo o caminho absoluto do executável, usando c #?

Dê uma olhada neste pseudocódigo:

string exe_path = system.get_exe_path() print "This executable is located in " + exe_path 

Se eu construir o programa acima e colocar o executável em C:/meow/ , ele irá imprimir This executable is located in C:/meow/ cada vez que é executado, independentemente do diretório de trabalho atual.

Como eu poderia facilmente conseguir isso usando C# ?

    MSDN tem um artigo que diz para usar System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase ; se você precisar do diretório, use System.IO.Path.GetDirectoryName nesse resultado.

    Ou, há o Application.ExecutablePath mais curto que “Obtém o caminho para o arquivo executável que iniciou o aplicativo, incluindo o nome do executável”, o que pode significar que ele é um pouco menos confiável, dependendo de como o aplicativo foi iniciado.

     AppDomain.CurrentDomain.BaseDirectory 
     using System.Reflection; string myExeDir = new FileInfo(Assembly.GetEntryAssembly().Location).Directory.ToString(); 

    “Obtém o caminho ou a localização UNC do arquivo carregado que contém o manifesto.”

    Consulte: http://msdn.microsoft.com/pt-br/library/system.reflection.assembly.location.aspx

     Application.ResourceAssembly.Location 
     var dir = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); 

    Eu pulei para a melhor resposta e encontrei-me não conseguir o que eu esperava. Eu tive que ler os comentários para encontrar o que eu estava procurando.

    Por essa razão, estou postando a resposta listada nos comentários para dar a exposição que ela merece.

    Suponha que eu tenha o arquivo .config no aplicativo de console e agora estou ficando como abaixo.

     Directory.GetParent(Directory.GetCurrentDirectory()).Parent.FullName + "\\YourFolderName\\log4net.config"; 

    Do meu lado, eu usei, com uma aplicação de formulário:

     String Directory = System.Windows.Forms.Application.StartupPath; 

    leva o caminho de boot do aplicativo.