1
我有一個WiX的設置如果在升級過程中發生錯誤時,其具有WiX的自定義操作不運行
<MajorUpgrade Schedule="afterInstallInitialize"
DowngradeErrorMessage="A later version of [ProductName] is already installed. Setup will now exit." />
,安裝回滾和恢復以前安裝的版本。 但是,通過自定義操作創建的計劃任務已丟失,並且從未恢復。
我使用任務的創建/移除/回滾自定義操作:
<!-- task scheduling -->
<CustomAction Id="CreateScheduledTask" Return="check" Directory="SystemFolder"
ExeCommand=""[SystemFolder]SCHTASKS.EXE" /Create /RU "[TASK_DOMAIN]\[TASK_USERNAME]" /RP [TASK_PASSWORD] /SC DAILY /TN "Maintenance" /TR "[\\]"[SERVICELOCATION]Maintenance.exe[\\]"" /ST [TASK_TIME]"
Execute= "deferred"/>
<!-- rollback in case something went wrong -->
<CustomAction Id="CreateScheduledTask_Rollback" Execute="rollback" Return="ignore" Directory="SystemFolder" ExeCommand=""[SystemFolder]SCHTASKS.EXE" /Delete /TN "Maintenance" /F" />
<!-- removal of task -->
<CustomAction Id="RemoveScheduledTask" Return="ignore" Directory="SystemFolder" ExeCommand=""[SystemFolder]SCHTASKS.EXE" /Delete /TN "Maintenance" /F" Execute= "immediate"/>
爲
<InstallExecuteSequence>
<Custom Action="CreateScheduledTask_Rollback" Before="CreateScheduledTask"></Custom>
<Custom Action="CreateScheduledTask" Before="InstallFinalize"></Custom>
<Custom Action="RemoveScheduledTask" Before="RemoveFiles">
<![CDATA[(REMOVE="ALL")]]>
</Custom>
</InstallExecuteSequence>
的CreateScheduledTask
肌動過的NOT Installed
條件被排隊哪個爲了測試目的我刪除了。
任何人都可以告訴我,我需要做什麼,以便在升級設置回滾時重新創建任務? P.S .:我無權訪問任務最初創建的域,用戶名或密碼。
這就是我所害怕的。感謝您的示例和澄清。出於安全原因,我不會存儲憑據。由於升級失敗之後還會進行額外的調查(很可能是升級成功),這隻會造成一些不便。 – urbanhusky 2013-04-12 06:29:39