【发布时间】:2011-07-08 00:02:17
【问题描述】:
我们的 WIX 设置在通过自定义 UI 对话框询问登录帐户后安装 Windows 服务。 安装成功后服务启动。 整个设置需要提升的权限。
希望关于几个问题的任何指示:
问题 1 在尝试从“添加/删除程序”中进行“修复”时,UAC 会提示权限提升。允许后,修复仍然失败并显示消息:
“无法安装服务。请确认您有足够的权限来安装系统服务”。
以下是代码摘录:
...
特权 ...
<Component Id="C_ServiceEXE" Guid="{105F9C86-BF07-43C8-8C78-DF30F012CD68}">
<File Id="$(var.TargetFileName)" Name="$(var.TargetFileName)" KeyPath="yes" Assembly=".net"
AssemblyManifest="$(var.TargetFileName)" AssemblyApplication="$(var.TargetFileName)" DiskId="1"
Source="$(var.TargetDir)\$(var.TargetFileName)" />
<Condition>Privileged</Condition>
<ServiceInstall Id="Id_ServiceInstall"
Name ="$(var.ServiceName)"
Description="$(var.ServiceDescription)"
DisplayName="$(var.ServiceName)"
Account="[SERVICEACCOUNT]"
Password="[SERVICEPASSWORD]"
Start="auto"
ErrorControl="normal"
Type="ownProcess"
Vital="yes"
Interactive="no"
/>
<ServiceControl Id="Id_ServiceControl"
Name ="$(var.ServiceName)"
Remove="uninstall"
Start="install"
Stop="both"
Wait="yes"
/>
</Component>
...
我不太清楚为什么会发生这种情况,因为我的管理员在我的 Win7 开发盒上,并且已将设置和特别是服务安装组件标记为以特权模式运行。
我怀疑我可能在 AdminInstallExecute 序列中缺少计划修复,但不太确定这是否能解决此问题。
问题 2 此外,相关问题是 - 如果修复成功,是否会再次要求用户通过 UI 输入登录帐户。 我宁愿在修复或升级期间抑制所有交互式 UI。我意识到 UPGRADINGPRODUCTCODE 来检测升级。
但是如何检测修复?
感谢任何帮助或指点。
【问题讨论】:
标签: c# wix installation wix3.5