如何从Windows服务中读取文本文件?

Jed*_*Jed 9 c# windows-services

我已经安装了一个安装在c:\Program Files\My Service目录中的Windows服务.与可执行文件一起,我有一个安装在同一目录中的XML文件.服务使用此XML文件来获取用户定义的信息.

在服务的代码中,我读取文件就好像它是可执行文件的本地文件一样.例如:

DataSet ds = new DataSet();
ds.ReadXml("Foo.xml");
Run Code Online (Sandbox Code Playgroud)

但是,当我运行该服务时,该服务抛出一个异常说:

找不到文件'C:\ Windows\system32\Foo.xml'

由于可执行文件存在于c:\Program Files\My Service我希望Windows服务中查找XML文件c:\Program Files\My Service\Foo.xml.显然,事实并非如此.

如何强制服务在服务可执行文件所在的同一位置查找(相对)Foo.xml文件?

Can*_*ide 15

用这个:

System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Foo.xml");
Run Code Online (Sandbox Code Playgroud)