如何使用命令行+参数注册.Net服务?

时间:2009-06-11 19:03:22

标签: c# .net-3.5 service

我希望能够在服务的安装中传递参数。我修改了从Installer继承的类的C#代码...我的问题是InstallUtil.exe不能用于参数(我不知道)。

有什么建议吗?

4 个答案:

答案 0 :(得分:9)

我们有相同的方案,它的工作原理。您必须按如下方式传递参数

InstallUtil.exe /Param1="Value" /Param2="Value" "Path to your exe"

然后你要在安装程序上覆盖Install方法

public override void Install(System.Collections.IDictionary stateSaver)
{
     var lParam1 =   GetParam("Param1");
}

private string GetParam(string pKey)
{
        try
        {
            if (this.Context != null)
            {
                if (this.Context.Parameters != null)
                {
                    string lParamValue = this.Context.Parameters[pKey];
                    if (lParamValue != null)
                        return lParamValue;
                }
            }
        }
        catch (Exception)
        {
        }
        return string.Empty;
    }

答案 1 :(得分:2)

实际上可以使用.NET Framework附带的.NET安装程序实用程序InstallUtil.exe来完成。

请看一下这篇CodeProject文章。

答案 2 :(得分:0)

试试NSIS。它是一种为安装而构建的脚本语言,允许您执行各种复杂的操作。就个人而言,我会将它用于超越“Next,Next,Next”的任何安装。非常光滑,并不是那么难学。

答案 3 :(得分:0)

使用Visual Studio或类似Wix之类的内容构建和安装程序。在Visual Studio中,您可以执行Custom Action并在CustomActionData字段中传入参数。