C# 自定义服务的注册表项-何时创建/删除它们?

C# 自定义服务的注册表项-何时创建/删除它们?,c#,.net,service,registry,C#,.net,Service,Registry,我目前正在尝试使用C#和.NET创建一个简单的Windows服务。我所处的位置是,服务完成了它应该做的事情,但使用了大量硬编码值。我想将这些值移动到一个单独的配置区域-可能是Windows注册表。我想为我的服务提供一种默认配置—如果设置/注册表项不存在,请创建一组默认值,并警告用户可能需要调整默认值。但是,我不确定何时执行此操作: 我可以从ServiceBase子体的构造函数中创建注册表项 我可以在按照教程创建的安装程序中创建条目(一个子类System.Configuration.Instal

我目前正在尝试使用C#和.NET创建一个简单的Windows服务。我所处的位置是,服务完成了它应该做的事情,但使用了大量硬编码值。我想将这些值移动到一个单独的配置区域-可能是Windows注册表。我想为我的服务提供一种默认配置—如果设置/注册表项不存在,请创建一组默认值,并警告用户可能需要调整默认值。但是,我不确定何时执行此操作:

  • 我可以从
    ServiceBase
    子体的构造函数中创建注册表项

  • 我可以在按照教程创建的安装程序中创建条目(一个子类
    System.Configuration.Install.installer


我不确定是否还有其他选择,这些选择的优缺点是什么,是否有“正确”的方法来执行此操作。我甚至不太确定是否应该以及在何处提供代码来自动删除注册表项。

如果您正在使用注册表,则应该让安装程序创建默认的键/值对,并让卸载程序删除它们


另一种方法是使用app-config文件,它比处理注册表更简单,请参阅以下帖子:

我需要安装我的服务的管理员配置我的服务,而不是在设计/编译时。我不确定应用程序配置文件是否是正确的选择…?当然,你可以用配置文件来做