2008-11-19 155 views
2

所以,我想在應用程序完成安裝後(儘管事實上,當輔助應用程序運行真的無所謂,因爲它不會與安裝的文件進行交互安裝),運行與應用程序捆綁在一起的另一個程序。相關代碼(與更換不同的東西「...」:Wix自定義操作與WixUI_Minimal

<directory ...> 
    <component ...> 
    <File Id="IDINST" ... /> 
    </component> 
</directory> 
... 
<CustomAction Id="IDACTION" FileKey="IDINST" ExeCommand="..." Return="ignore" /> 
... 
<InstallExecuteSequence> 
    <Custom Action="IDACTION" After="CostFinalize" /> 
</InstallExecuteSequence> 

我檢查目錄和文件是在我預料,但安裝過程後,沒有執行事實上我真的不知道。即使想要安裝該文件,只是運行,然後刪除。但我現在會忽略這個。不管怎麼說,我已經看到幾個對話後觸發動作的例子,但因爲我目前使用<UIRef Id="WixUI_Minimal" />我不認爲這是

回答

5

CostFinalize在InstallFiles延遲操作運行之前發生(實際上是放置該文件)。因此,CustomAction無法正常工作(因爲文件不可用)(因爲Return被忽略)

您需要您的CustomAction至少在InstallFiles之後計劃並被延期,或者如果CustomAction不能延遲運行,那麼它必須在InstallFinalize之後(當然,它不會在InstallFinalize之後導致回滾)。