以编程方式修改服务安装配置

本文关键字:安装 配置 服务 修改 编程 方式 | 更新日期: 2023-09-27 18:33:40

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

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

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

开始探索我可用的 MsiConnection.Instance 对象的内容,我发现了似乎是服务"组件"的内容,但似乎我无法配置它。

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

是否可以以编程方式覆盖服务安装配置?

以编程方式修改服务安装配置

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