Windows service - get current directory
You can set the current directory to the directory that your service is running from by including this line in your code:
System.IO.Directory.SetCurrentDirectory(System.AppDomain.CurrentDomain.BaseDirectory);
The important part of this is:
System.AppDomain.CurrentDomain.BaseDirectory
That returns the path to the directory your service is running from.
Try this:
System.Reflection.Assembly.GetEntryAssembly().Location
Getting directory from full path:
var location = System.Reflection.Assembly.GetEntryAssembly().Location;
var directoryPath = Path.GetDirectoryName(location);
Quite a silly problem when comparing to writing a Windows service :)
Don't use Directory.GetCurrentDirectory()
. I had the same exact problem with C:\Windows\System32 being returned. Use this instead:
Path.GetDirectoryName(Application.ExecutablePath);