好的,这是情况。我写了一个Windows服务。将其作为“控制台”应用程序进行测试已经显示了有希望的结果。
不幸的是,我无法弄清楚文件的放置位置。我有一些对应用程序至关重要的JSON数据。它在一个文件中。我宁愿不详细讨论,但只知道它必须在一个文件中,这是至关重要的。它不是配置文件,但绝对需要它。
无论如何,我已将该文件添加到我的Windows服务项目中。问题是,在安装服务时,我无法确定用于将文件放在正确位置的正确代码和设置。
这只是我写过的第二个Windows服务,第一个(多年前)不需要补充文件。
我在Windows 7的Visual Studio 2015中编写了该服务。我将在办公室的本地计算机上对其进行测试,但最终会在生产计算机上进行测试。
请帮忙吗?关于我应该把文件放在哪里以及如何在代码中引用它的任何想法?
我看到一个网站说我应该使用以下内容:
System.IO.Directory.SetCurrentDirectory(System.AppDomain.CurrentDomain.BaseDirectory);
但是当我这样做时,这似乎没有帮助:
filePath = Environment.CurrentDirectory + "\\myfile.ext"
在这些情况下,文件路径从来就不是我的强项。
非常感谢任何帮助。
答案 0 :(得分:3)
我没有对此进行测试,但我认为没有理由不这样做:
internal string FilePath =
System.IO.Path.Combine(
System.AppDomain.CurrentDomain.BaseDirectory,
Settings.Default.JsonFile);
答案 1 :(得分:0)
好吧,看起来我弄明白了。我做了以下事情:
在"程序"服务方面,我做了以下事情:
System.IO.Directory.SetCurrentDirectory(System.AppDomain.CurrentDomain.BaseDirectory);
ServiceBase [] ServicesToRun;
ServicesToRun = new ServiceBase [] { 新的MyService() };
ServiceBase.Run(ServicesToRun);
在监控所有内容的班级中,我有以下内容:
internal string FilePath = Directory.GetCurrentDirectory() + "\\" + Settings.Default.JsonFile;
然后我做了一些与这个主题无关的其他调整,但上面似乎就是这样做了。