Il dépend. Si vous voulez le répertoire de l'EXE qui a commencé à la demande, soit de vos deux exemples de travail. N'oubliez cependant pas que .NET est très souple, et il se pourrait qu'une autre application qui est liée à votre EXE et de l'est de l'appeler, éventuellement à partir d'un autre répertoire.
Ça n'arrive pas très souvent et vous aurait probablement écrit s'il le faisait, mais c'est une possibilité. À cause de cela, je préfère préciser que l'assemblée, je suis intéressé et obtenir le répertoire à partir de cela. Alors je sais que j'ai toutes les Dll dans le même répertoire que celui spécifique de l'assemblée. Par exemple, si vous avez une application MyApp.exe avec une classe elle-MyApp.MyClass, alors vous feriez cela;
string root = string.Empty;
Assembly ass = Assembly.GetAssembly( typeof( MyApp.MyClass ) );
if ( ass != null )
{
root = ass.Location;
}