後,我有以下WiX的片段:執行需要提升一個自定義操作安裝
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOX" Value="1" />
<CustomAction Id="StartAppOnExit"
FileKey="Configurator.exe"
ExeCommand=""
Execute="immediate"
Impersonate="yes"
Return="asyncNoWait" />
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT"
Value="Configure initial settings" />
<UI>
<Publish Dialog="ExitDialog"
Control="Finish"
Order="1"
Event="DoAction"
Value="StartAppOnExit"
>WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
</UI>
基本上就退出對話框我顯示一個對話框,上面寫着:啓動應用程序。注意:這個應用程序需要提升。這一切工作正常,除了一個障礙。如果啓用了UAC,似乎MSI會用用戶令牌剔除並剝離它的組,因此當它試圖啓動需要提升的應用程序時,它不再是一個選項。
我如何將這些字符串串起來工作?
我試圖夾住Impersonate =「no」,但在這一點上工作已經太遲了。
關於您的疑問,問題是需要提升的組合,以及CreateProcess無法提升其創建的進程的事實。相反,CreateProcess返回ERROR_ELEVATION_REQUIRED,這是自定義代碼可以處理的。 Windows Installer只報告錯誤。 – 2010-02-25 14:31:06