以编程方式修改ServiceInstall配置

时间:2013-10-01 20:38:50

标签: c# wix windows-installer

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

我们现在希望允许选择将运行该服务的用户。我们已经安装了所有的安装流程,但是我们仍然坚持改变ServiceInstall配置:我们的XML文件没有列出用户或密码,我们无法弄清楚如何使用我们的用户/密码对来覆盖什么是写在XML文件中。

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

我开始探索可供我使用的MsiConnection.Instance对象的内容,并且我看来似乎是服务“组件”,但似乎我没有配置它。

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

可以通过编程方式覆盖ServiceInstall配置吗?

1 个答案:

答案 0 :(得分:1)

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