如何将我自己的 XML 配置文件添加到 Windows 服务 C#

Posted

技术标签:

【中文标题】如何将我自己的 XML 配置文件添加到 Windows 服务 C#【英文标题】:How to Add My Own XML Configuration File to the Windows Service C# 【发布时间】:2020-07-17 04:16:51 【问题描述】:

我正在开发一个 Windows 服务,并在其中添加了一个特殊的配置 XML 文件。 使用 Visual Studio 进行调试时,服务可以读取该文件中的数据。 但是在构建文件时,该 XML 文件不会添加到构建文件夹中。 同样在安装服务后,它从 System32 开始(默认位置) 它给出了一个错误(Cannot find the file C:\Windows\System32\ServerAgent.xml) 文件未添加到安装文件夹。

如何将我的 XML 文件添加到构建文件夹和安装位置?

提前致谢。

【问题讨论】:

在 VisualStudio 解决方案资源管理器的文件属性中,可以指定是否将文件复制到输出目录。在你的服务中加载文件时,不要依赖当前目录,而是指定完整路径。 【参考方案1】:
    在 Visual Studio 中,单击文件树中的文件 右键单击并选择属性 有一个名为“复制到输出目录”的属性 选择“始终复制”或“如果更新则复制”

最好使用您的应用设置指定 xml 文件的完整路径。请参阅此答案以查找您的应用程序所在的文件夹:

https://***.com/a/8081812/65432

【讨论】:

谢谢@Rosco 您的解决方案解决了我的部分问题。现在 xml 文件被添加到构建文件夹中。但是当服务启动(未安装)时,它会在System32 文件夹中搜索该文件。得到同样的错误.. 该服务需要在xml位于同一文件夹中的位置启动应用程序可执行文件。 @JayNaz 添加了有关查找 xml 文件位置的更多信息 文件未找到错误已被修复。我用doc.Load(AppDomain.CurrentDomain.BaseDirectory + @"\ServerAgentConfig.xml"); 替换了doc.Load(Directory.GetCurrentDirectory() + @"\ServerAgentConfig.xml");,就这么简单。谢谢@Rosco

以上是关于如何将我自己的 XML 配置文件添加到 Windows 服务 C#的主要内容,如果未能解决你的问题,请参考以下文章

将我自己的 C# 项目配置添加到 MSBuild / Visual Studio

如何将设备添加到分发配置文件

将我自己的头文件添加到 ATSAMA5D36 开发板库的代码中

如何将我自己的日志添加到 Amazon Elastic Beanstalk 上的日志轮换/S3 备份?

将我自己的函数添加到 OpenCV

如何将自己的 javascript/css 文件添加到 wordpress 插件菜单页面?