我:新建一个Windows Services解决方案A, 库文件B.DLL 和 C.DLL.并且库文件B需要调用BB.XML,库文件C需要调用CC.XML. 当然了解决方案A 要用到B和C. 
>>> 当我把服务A安装到服务管理器中并且启动该服务时,服务启动失败,并且报错(system.nullreferenceexception),此时文件BB.XML 和 CC.XML 在程序的安装目录下。当我把文件BB.XML 和 CC.XML 放到目录 “C:\WINDOW\SYSTEM32"下之后,该服务启动正常,并且可以正常使用。
>>> 我想能不能不把文件BB.XML 和 CC.XML 放到目录 “C:\WINDOW\SYSTEM32"下,有没有其他的解决方法。

解决方案 »

  1.   

    通过
    string strPath = Assembly.GetExecutingAssembly().Location;获得程序路径,然后通过绝对路径访问xml文件。
      

  2.   

    使用下面的其中一种,然后测试通过调用Process.GetCurrentProcess().MainModule.FileName可获得当前执行的exe的文件名。
    Environment.CurrentDirectory
    Directory.GetCurrentDirectory()
    AppDomain.CurrentDomain.BaseDirectory
    Application.StartupPath
    Application.ExecutablePath
    Assembly.GetExecutingAssembly
    AppDomain.CurrentDomain.SetupInformation.ApplicationBase获取当前应用程序所在的路径。
    http://www.cnblogs.com/xingd/archive/2005/03/21/123152.html
      

  3.   

    应该没有问题的,不动脑筋可以把配置文件切入到资源,或在app.Config中包含两个配置文件的绝对路径。