Windows installer 使用参数从合并模块内安装Windows服务
我想在合并模块中安装服务。服务开始名和密码应由用户配置 我的安装程序配置如下 module.msm 我的模块具有IdWindows installer 使用参数从合并模块内安装Windows服务,windows-installer,advanced-installer,Windows Installer,Advanced Installer,我想在合并模块中安装服务。服务开始名和密码应由用户配置 我的安装程序配置如下 module.msm 我的模块具有IdC68FD1DE_B6A0_4BC1_A7BB_D7DBF65F2DB7,并定义了两个属性SERVICE_PASSWORD和SERVICE_USER,它们都具有未定义的默认值。 我添加了两个“带有格式化的属性集”自定义操作,并将这些属性配置为目标。 我还配置了服务安装时的属性 setup.exe 我的安装程序加载合并模块,并在module.msm上设置属性SERVICE_PASSW
C68FD1DE_B6A0_4BC1_A7BB_D7DBF65F2DB7
,并定义了两个属性SERVICE_PASSWORD和SERVICE_USER,它们都具有未定义的默认值。
我添加了两个“带有格式化的属性集”自定义操作,并将这些属性配置为目标。
我还配置了服务安装时的属性
setup.exe
我的安装程序加载合并模块,并在module.msm上设置属性SERVICE_PASSWORD和SERVICE_USER
执行时,我发现错误服务'Service.exe'无法安装。验证您是否有足够的权限安装系统服务。
,我检查了日志,发现以下重要条目:
MSI(c)(88:DC)[10:36:57:178]:属性更改:添加服务\u密码属性。它的值是“password”
MSI(c)(88:DC)[10:36:57:178]:属性更改:添加服务和用户属性。其值为“.\user”
MSI(70:04)[10:38:18:771]:执行操作:ServicePassword.C68FD1DE_B6A0_4BC1_A7BB_D7DBF65F2DB7
MSI(70:04)[10:38:18:781]:属性更改:添加[SERVICE_PASSWORD]属性。它的值是“password”
MSI(70:04)[10:38:18:781]:执行操作:ServiceUser.C68FD1DE_B6A0_4BC1_A7BB_D7DBF65F2DB7
MSI(70:04)[10:38:18:791]:属性更改:添加[服务用户]属性。它的值是“用户”
MSI(70:04)[10:38:29:391]:执行op:ServiceInstall(名称=服务,显示名称=服务,ImagePath=“C:\Program Files\company\product\service.exe”,ServiceType=16,StartType=2,ErrorControl=1,依赖项=,StartName=未定义,密码=***,说明=,)
当我有一个工作属性时,它会说修改而不是添加
MSI(64:9C)[12:06:03:108]:属性更改:修改SERVERNAME.ABB6A92E_9A58_4320_981C_149C0F4EE78A属性。其当前值为“defaultserver”。它的新值:“targetserver”
似乎将正确的值传递给了我的合并模块,但没有使用。
其他以这种方式参数化的合并模块正在工作,但属性不用于安装服务。那么,要让它正常工作,我还缺少什么呢?这听起来很愚蠢,但我要确保服务startname确实是大写的service\u用户。“未定义”似乎表示它是一个尚未定义的属性。\user帐户是否具有作为服务运行的权限?顺便说一句,您不会将数据传递给合并模块。合并模块在生成时合并到MSI中。在那之后它就不存在了。这只是一组组合的表数据。属性名称是正确的,与权限无关。错误在于设置属性的自定义操作是在安装步骤上调用的,并且在Windows Installer序列中的InstallServices之后执行。我会回答我的问题,并在我有时间的时候补充细节。谢谢大家。