繁体   English   中英

使用安装项目在安装时指定Windows服务名称

[英]Specify Windows Service Name on install with Setup Project

目标:为了支持在一台计算机上可能有多个实例的Windows服务,请使用安装项目创建一个能够执行以下操作的MSI:

  1. 接收服务名称的用户输入
  2. 安装服务
  3. 从1序列化服务名称(以便在记录和卸载时使用正确的名称)

我最初的希望是在App.config中设置服务名称(然后在实例化ServiceInstaller时在卸载期间检索它。这似乎很天真,因为在安装过程中无法访问它。

如果MyInstaller扩展了Installer,它可以调用base.Install(); 但是,我尝试写入app.config(在MyInstaller.Install()内和base.Install()之后)是无效的。

因此,虽然可以使用自定义服务名称安装服务,但该名称未被序列化,安装程序在卸载时最不满意。

该怎么做?

您可以为安装程序操作指定参数,因此请收集服务名称,并将其作为参数传递给操作。 然后,在Installer类中,您可以覆盖Install()并通过base.Context.Parameters访问它。 这就是你获得价值的方式。 获得该值并使用它后,将其放入stateSaver IDictionary参数中,这样如果重写Uninstall()您就可以找到安装时使用的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM