Wix ServiceInstall参数

有谁知道如何获取我在ServiceInstall中声明的参数在启动时传递给服务? 它们在我的OnStart(string [] args)中似乎总是为空。

   

有点旧,但这是你能做的

    [P_USEREMAIL] [P_USERPASSWORD] [P_DEFAULTNAMINGCONTEXT] [P_USEHTTPPROXY] [P_PROXYADDRESS] [P_PROXYDOMAIN] [P_PROXYUSERNAME] [P_PROXYPASSWORD]  

更新:当涉及到这个元素时,WIX文档是悲惨的。

基本上,您可以设置(公共)WIX变量,通常定义为[P_ *](例如msiexec参数,静态或CA)。 这些值在启动时传递给服务的方式与在服务控制台启动服务时(或者我想象的net start)作为启动参数提供的字符串中连接这些值的方式相同。 在我的例子中,这些是空格分隔值,例如[P_USERMAIL]是“–useremail some@email.com”,虽然这是任意的,因为您将在您发布的服务启动代码中处理此问题。

您可能知道,这些值不会持久存在。 如果服务无法使用您提供的值进行初始化,则需要重新安装/修复或以其他方式将其传递给服务(即服务控制台,net​​ start)。

有谁在这方面取得进展? 我没有看到这些论点在启动时触及我的服务:

   

我的服务总是得到一个空的arg数组:

  partial class PrintMonitorService : ServiceBase { private readonly PrintMonitorServiceManager _serviceManager; public PrintMonitorService() { InitializeComponent(); _serviceManager = new PrintMonitorServiceManager(); } protected override void OnStart(string[] args) { _serviceManager.StartHosting(args); } protected override void OnStop() { _serviceManager.StopHosting(); }