vkr*_*rzv 1 windows debugging service windows-installer wix
我有一个用WiX编写的简单msi安装本机NT服务.在我对msi进行了一些更改后,它在StartServices标准操作失败,错误"服务无法启动,验证您有足够的权限".如果我按Ignore并手动启动服务,则它会成功启动.问题绝对不在于权限不足.如何诊断/调试此类问题?Windows Installer的详细日志似乎不包含任何有用的信息.
安装程序将没有任何有用的信息,因为错误仅由安装程序显示.这是我如何处理这个问题.
注释掉ServiceControl元素,以便安装程序不会尝试启动该服务.运行安装程序并完成所有操作.手动启动该服务.
如果服务启动,则表示某种类型的竞争条件.一种常见情况是服务依赖于安装到GAC或WinSXS的文件.安装程序使用PublishAssemblies标准操作将这些文件放在那里.但是,由于GAC和WinSXS API不支持跨安装,因此PublishAssemblies将等待提交阶段以执行工作.这是在安装程序尝试启动服务之后.另一种常见的情况是,如果您有一些自定义操作,即安装或配置服务所需的内容,并且您在安装后期执行此操作.
如果该服务仍然无法启动,则通常会排除竞争条件.您必须自行分析服务.使用depends,ildasm(如果.net)和processexplorer(filemon/regmon)等工具来尝试发现缺少的依赖项.更新安装程序,然后冲洗并重复.