C# 将参数传递给Windows服务的主(字符串[]参数)

C# 将参数传递给Windows服务的主(字符串[]参数),c#,.net,service,windows-services,C#,.net,Service,Windows Services,我需要将参数传递给windows服务的Main(string[]args),我可以通过使用服务的属性将参数传递给voidOnStart(string[]args) 示例代码: static void Main(string[] args)////How to pass args to this function { //// some code } protected override void OnStart(string[] args)////by using above link i c

我需要将参数传递给windows服务的
Main(string[]args)
,我可以通过使用服务的属性将参数传递给void
OnStart(string[]args)

示例代码:

static void Main(string[] args)////How to pass args to this function
{
//// some code
}
protected override void OnStart(string[] args)////by using above link i can pass parameters to this function
{
////some code
}
注意:我使用项目属性将参数传递给main(),但它不能实时提供帮助

这是一个正确的方式,因为我找不到任何有关这方面的信息吗

编辑1:

我参考了这个,但是我没有得到太多的信息为什么我们不能通过

编辑2:

我的目标是将Raygun密钥传递给Main(String[]args),然后将错误记录到Raygun网站,因此它将根据密钥将错误记录到特定版本。所以我需要动态地将Raygun密钥传递给服务,我可以通过服务属性传递密钥,然后它将只在开始(…)级别记录,因此如果在main()级别处理任何异常,我将无法记录。因此,我需要在主方法级别或在服务启动时初始化以下代码

_raygunClient = new RaygunClient("Dynamic_Key");

服务将在任何时候手动启动,以便将来进行开发。

将Raygun键作为密码传递。在安装时设置密钥。不需要动态参数。

如果不更改服务的映像路径,就不需要动态参数。首先启动可执行文件(
main()
),然后服务控制管理器请求服务启动(
OnStart()
)。为什么要使用
main()
,如果需要,为什么不简单地更改映像路径?为什么链接的副本不能回答您的问题?答案主要集中在如何将参数传递给onstart()方法。从这个答案中,对我唯一有帮助的一点是在OnStart方法中而不是在Main方法中处理服务的初始化参数“,所以对于这种类型的情况没有其他选择?@CodeCaster目前我在支持项目中工作,所以我不想更改现有代码,如通过服务属性传递参数,因为它们已经传递了几年前的一些参数。如果我现在更改,将创建一些额外的工作。”。