【问题标题】:Programmatically modfying ServiceInstall configuration以编程方式修改 ServiceInstall 配置
【发布时间】:2013-10-01 20:38:50
【问题描述】:

我们正在使用 SharpSetup 来创建我们的安装程序。我们有一些自定义逻辑(自定义对话框等),然后是实际的 Wix 安装程序,其中包括安装服务。要安装服务,我们使用 ServiceInstall 标签。

我们现在希望允许选择将运行该服务的用户。我们已经完成了所有的安装流程,但是我们一直在更改 ServiceInstall 配置:我们的 XML 文件没有列出用户或密码,而且我们不知道如何使用我们的用户/密码对来覆盖什么写在 XML 文件中。

我正在考虑使用环境变量(Wix 显然支持),但我的理解是它们被评估得太早(即安装程序启动时,在我让最终用户配置服务帐户之前)。此外,用于存储密码的环境变量似乎很不安全。

我开始探索我可以使用的 MsiConnection.Instance 对象的内容,我找到了似乎是服务“组件”的东西,但我似乎无法对其进行配置。

我总是可以使用自己的代码手动安装服务,但我希望为此利用 Wix/MSI 功能。

能否以编程方式覆盖 ServiceInstall 配置?

【问题讨论】:

    标签: c# wix windows-installer


    【解决方案1】:

    显然 MSI 属性(参见例如http://msdn.microsoft.com/en-us/library/windows/desktop/aa370391%28v=vs.85%29.aspx)可以用于此。我可以为 XML 中的帐户名称分配一个属性(例如 SERVICE_USER),并以编程方式调用 SharpSetup 的 SetProperty 以在运行时设置此属性。

    【讨论】:

      猜你喜欢
      • 2011-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-02
      • 1970-01-01
      • 2013-12-04
      • 2015-02-27
      相关资源
      最近更新 更多