Vous devriez pas utiliser Directory.GetCurrentDirectory()
dans votre cas, comme le répertoire actuel peut différer de l'exécution du dossier, en particulier lorsque vous exécutez le programme par le biais d'un raccourci.
Il est préférable d'utiliser Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
pour votre but. Renvoie le chemin d'accès où le en cours d'exécution de l'assemblée réside.
Alors que mon approche proposée permet de différencier entre l'exécution de l'assemblée, à l'entrée de l'assemblée ou de toute autre chargée de l'assemblée, comme Soner Gönül a dit dans sa réponse,
Path.GetDirectoryName(Application.ExecutablePath);
peuvent également être suffisantes. Ce serait égale à
Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);