当前位置:  开发笔记 > 编程语言 > 正文

如何使用C#查找Windows服务的安装目录?

如何解决《如何使用C#查找Windows服务的安装目录?》经验,为你挑选了3个好方法。

我很确定使用InstallUtil.exe安装时,Windows服务会将C:\ winnt(或类似)作为其工作目录.有没有办法可以访问或以其他方式捕获(在安装时)最初安装服务的目录?目前我手动将其输入到app.exe.config文件中,但这是可怕的手动,感觉就像一个黑客.

是否在运行时或安装时有一种编程方式来确定服务的安装位置?



1> Steve Wranov..:

您可以使用反射来获取正在执行的程序集的位置.这是一个简单的例程,它使用反射将工作目录设置为正在执行的程序集的位置:

String path = System.Reflection.Assembly.GetExecutingAssembly().Location;
path = System.IO.Path.GetDirectoryName(path);
Directory.SetCurrentDirectory(path);



2> Jon Skeet..:

你的意思是你想要包含程序集的目录吗?如果是这样,那很简单:使用Assembly.Location.

我不会尝试改变过程的工作目录 - 如果它有令人讨厌的副作用我不会感到惊讶,如果确实你被允许这样做的话.



3> Ramon Smits..:

我不知道这个Directory.SetCurrentDirectory方法.通常我这样做:

Environment.CurrentDirectory = System.AppDomain.CurrentDomain.BaseDirectory;

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有