使用安装程序自定义UI更改ServiceName

时间:2018-04-11 20:04:56

标签: .net winforms service setup-project

我已经创建了一个安装程序来安装Windows服务。安装程序应该要求用户为服务命名。因此,我在安装程序中使用TextBox创建了自定义UI。

当用户运行setup.exe文件时,安装开始并显示自定义UI。用户添加了Windows服务的名称,但如何在安装过程中将ServiceName作为用户输入,并将默认服务名称设置为用户在安装到该自定义UI期间提供的服务名称。

1 个答案:

答案 0 :(得分:0)

您需要按照以下步骤操作:

  1. 创建Windows 服务项目。它将创建一个包含Service1.cs
  2. 的服务项目
  3. 打开Service1.cs并右键单击并选择添加安装程序。它会创建一个ProjectInstaller.cs
  4. 添加新的设置项目。 (如果您没有项目模板,请从此处下载并安装VS2013VS2015VS2017
  5. 将服务项目的主要输出添加到安装项目。
  6. 安装文件夹之后,使用 TextBoxes(A)模板转到用户界面窗口和新对话框。 (将Edit1以外的其他文本框的可见属性设置为false。)
  7. 转到自定义操作窗口,并从服务项目的主要输出中添加新的自定义操作。
  8. 自定义操作窗口中,转到此节点转到此节点自定义操作安装来自WindowsService1的主要输出< / em>并在属性窗口中,将CustomActionData的值设置为/SVCNAME=[EDITA1]
  9. 在您的服务项目中打开ProjectInstaller.cs并覆盖Install以设置服务的NameDisplayName

    public override void Install(IDictionary stateSaver)
    {
        string value = Context.Parameters["SVCNAME"];
        this.serviceInstaller1.DisplayName = value;
        base.Install(stateSaver);
    }
    
  10. 然后构建项目并安装服务。