如何将文件附加到Windows服务?

时间:2016-09-15 15:54:16

标签: c# .net windows-services

是否可以将平面文件附加到Windows服务?

我的Windows服务使用很少的平面文件(用于数据)。通常,如果它是普通的可执行文件,我会将这些文件放在与exe相同的目录中。如何通过Windows服务实现这一目标?

我对此做了一些研究,但我发现的只有: 1.将这些文件的路径作为参数传递给windows-service。 2.建立一个固定的路径,只需要那些文件

但我不喜欢那些解决方案。我想知道是否可以在安装时将这些文件附加到Windows服务?

2 个答案:

答案 0 :(得分:0)

如何将这些文件作为嵌入式资源添加到项目中?它们不会出现在磁盘上,但您仍然可以从组件内部正确读取它们。

这里有一些参考:https://support.microsoft.com/en-ie/kb/319292

答案 1 :(得分:0)

您可以使用Application.StartupPath中的System.Windows.Forms属性在运行时查找安装应用程序的目录。这适用于应用程序和服务。您应该避免硬编码您认为安装应用程序的路径,因为最终用户可能已将其安装在其他位置。您还应该避免使用当前目录(即,仅按名称打开文件,没有特定路径),因为用户可能正在使用不同的当前目录运行您的应用程序。

请注意,installutil不会复制您的服务可执行文件。因此,该服务从安装它时所在的目录运行,并且当该服务运行时,您放在该目录中的任何文件仍应存在。