我正在使用WIX創建我的應用程序的安裝程序。 在卸載應用程序的過程中,我想在卸載程序刪除DLL文件所屬的文件之前調用DLL文件中的函數。我檢查了其他相關的帖子,如this post繼續。卸載期間WIX中的自定義操作
我創建了一個CustomAction
如下:
<CustomAction Id="UnRegister"
FileKey="mydll.dll"
DllEntry="cleanup"
Execute="immediate"
Return="ignore"/>
然後InstallExecuteSequence
標籤:
<InstallExecuteSequence>
<Custom Action="UnRegister" After="InstallInitialize">Installed AND NOT UPGRADINGPRODUCTCODE</Custom>
</InstallExecuteSequence>
問題是,當我嘗試卸載應用程序,文件首先,然後取出安裝程序在DLL中調用cleanup()函數。出錯後,卸載回滾並失敗。
如何配置WIX安裝程序,以便它首先調用函數,然後在卸載過程中刪除文件?
謝謝
立即操作執行後文件被刪除,所以自定義操作應該在文件在機器上時運行。您能發佈卸載例程的詳細日誌,準確查看觸發文件刪除的內容嗎? –
日誌: 錯誤1723.此Windows安裝程序包存在問題。無法運行此安裝所需的DLL。聯繫您的支持人員或軟件包供應商。操作註冊,條目:AddInfo,庫:C:\ Program Files(x86)\ testApp \ mydll.dll。 但是這個日誌顯示它想要執行我用於安裝的功能。 我有一個類似的CustomAction命名爲「Register」: –
Ali
所以你的自定義動作運行了,但是失敗了?如果是這樣,這很可能是由於缺乏管理員權限,因此他們將自定義操作設置爲延期執行,而不是模擬,而不是立即執行。 –