<p><code>AppDomain.CurrentDomain.BaseDirectory</code> est probablement le plus utile pour acceder aux fichiers dont l’emplacement est relatif au repertoire d’installation de l’application.</p>
<p>Dans une application <a href="http://ASP.NET">ASP.NET</a>, ce sera le repertoire racine de l’application, pas le sous-dossier bin - ce qui est probablement ce que vous souhaitez habituellement. Dans une application cliente, ce sera le repertoire contenant l’executable principal.</p>
<p>Dans une application VSTO 2005, ce sera le repertoire contenant les assemblies manages VSTO de votre application, et non, par exemple, le chemin vers l’executable Excel.</p>
<p>Les autres methodes peuvent retourner des repertoires differents selon votre environnement - voir par exemple la reponse de <span class="mention">@Vimvq1987</span>.</p>
<p><code>CodeBase</code> est l’endroit ou un fichier a ete trouve et peut etre une URL commencant par http://. Dans ce cas, <code>Location</code> sera probablement le cache de telechargement de l’assembly. CodeBase n’est pas garanti d’etre defini pour les assemblies dans le <a href="http://en.wikipedia.org/wiki/Global_Assembly_Cache">GAC</a>.</p>
<p><strong>MISE A JOUR</strong><br>
De nos jours (.NET Core, .NET Standard 1.3+ ou .NET Framework 4.6+), il est preferable d’utiliser <code>AppContext.BaseDirectory</code> plutot que <code>AppDomain.CurrentDomain.BaseDirectory</code>. Les deux sont equivalents, mais <a href="https://learn.microsoft.com/en-us/dotnet/core/porting/net-framework-tech-unavailable">les AppDomains multiples ne sont plus pris en charge</a>.</p>