J'ai un service Windows qui devrait rechercher un fichier de configuration dans son répertoire actuel.
J'utilise donc directory.getcurrentdirectiry()
mais au lieu du répertoire de service je reviens
c:\windows\system32
Vous savez pourquoi et comment obtenir le répertoire des services?
N'utilisez pas Directory.GetCurrentDirectory()
. J'ai eu le même problème exact avec C:\Windows\System32 étant retourné. Utilisez-le à la place:
Path.GetDirectoryName(Application.ExecutablePath);
Vous pouvez définir le répertoire actuel sur le répertoire à partir duquel votre service s'exécute en incluant cette ligne dans votre code:
System.IO.Directory.SetCurrentDirectory(System.AppDomain.CurrentDomain.BaseDirectory);
La partie importante de ceci est:
System.AppDomain.CurrentDomain.BaseDirectory
Cela renvoie le chemin d'accès au répertoire à partir duquel votre service s'exécute.
Essaye ça:
System.Reflection.Assembly.GetEntryAssembly().Location
obtenir le répertoire à partir du chemin complet:
var location = System.Reflection.Assembly.GetEntryAssembly().Location;
var directoryPath = Path.GetDirectoryName(location);
un problème assez stupide en comparaison avec l'écriture d'un service Windows :)