Get Current Directory while running as WindowsService
By admin - Last updated: Monday, September 8, 2008 - Save & Share - One Comment
During development, while you run the application as a console application or windows form application, often the code needs to load a specific file within the same folder of the exe assembly resides. The file can be located by using the file name directory since the default location will be the exe’s directory.
For instance,
File.Exists("myfile.xml");
However, it is a different story if you run the application as a WindowsService. In order to resolve the excuting assembly directory path, the code needs to do a bit extra work.
Console.WriteLine(Assembly.GetExecutingAssembly().Location) ;
result: “C:\FolderName\RunMe.exe”
Console.WriteLine( Path.GetDirectoryName( Assembly.GetExecutingAssembly().Location ) );
result: “C:\FolderName”
So , load the specifc file “myfile.xml”
File.ReadAllText( Path.GetDirectoryName( Assembly.GetExecutingAssembly().Location + @"\myfile.xml" ));

Comment from Eric Duncan
Time July 31, 2009 at 2:35 pm
Perfect, thank you. Was needing that tonight for a new service.