我想在 ExitDialog 中有一个复选框,并基于它启动或不启动我安装的 Windows 服务。我尝试使用执行命令行的自定义操作来启动 Windows 服务,这是我的 WIX 代码:
<Fragment>
<!--This is the custom action to start my windows service, note there is pause in ExecuteCommand to see the output of command line -->
<CustomAction Id='LaunchApp' Directory='INSTALLFOLDER' Execute='immediate'
ExeCommand='[SystemFolder]cmd.exe /C net start MyService & pause' Return='ignore'/>
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Launch My Windows Service" />
<UI Id="Custom_InstallDir">
<!--Here I start windows service if the checkbox is checked-->
<Publish Dialog="ExitDialog" Control="Finish" Event="DoAction" Value="LaunchApp" Order="998">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
<Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish>
<!--Some other code-->
</UI>
</Fragment>
当我安装我的应用程序并标记复选框以运行 Windows 服务时,我收到此错误:Access is denied
m 这可能是因为操作 isimmediate
而不是,但在这种情况下deffered
我无法运行自定义操作。deffered
有什么办法可以克服我的问题吗?