我们使用SharpSetup来创建我们的安装程序。我们有一些自定义逻辑(自定义对话框等)。然后是实际的Wix安装程序,其中包括安装服务。为了安装服务,我们使用ServiceInstall标签。
我们现在希望允许选择将运行该服务的用户。我们已经准备好了所有的安装流程,但是我们无法更改ServiceInstall配置:我们的XML文件没有列出用户或密码,并且我们不知道如何使用用户名/密码对来覆盖XML文件中写入的内容。
我在考虑使用环境变量(显然在Wix中支持),但我的理解是,它们被评估得太早了(即安装程序启动时,也就是我让最终用户配置服务帐户之前)。此外,使用环境变量来存储密码似乎非常不安全。
我开始探索可供我使用的MsiConnection.Instance对象的内容,我找到了看起来像是服务“组件”的内容,但似乎无法配置它。
我总是可以使用自己的代码手动安装服务,但我希望利用Wix/MSI功能来实现这一点。
是否可以通过编程方式覆盖ServiceInstall配置?
发布于 2013-10-02 05:31:48
显然,MSI属性(参见例如http://msdn.microsoft.com/en-us/library/windows/desktop/aa370391%28v=vs.85%29.aspx)可以用于此目的。我可以为XML中的帐户名分配一个属性(例如SERVICE_USER),然后在运行时以编程方式调用SharpSetup的SetProperty来设置这个属性。
https://stackoverflow.com/questions/19125448
复制相似问题