2010-01-29 41 views
0

所以我有一個Wix 3.0項目,安裝IIS7本地代碼模塊。卸載時,我希望能夠在刪除文件之前關閉IIS7應用程序池,以便不必重新啓動。如何使用Wix 3.0以系統用戶身份執行自定義操作,然後檢查文件是否正在使用?

我使用APPCMD實用程序關閉了一個CustomAction元素的應用程序池,但是當我試圖做一個卸載我得到這個錯誤的customaction是不斷調用之前:

的設置必須更新文件或 服務無法更新,而 系統正在運行。如果您選擇 繼續,將需要重新啓動 才能完成設置。

我有「後=‘InstallInitialize’」屬性設置在CustomAction,因爲文檔中說,任何推遲/不被模擬的自定義操作必須來InstallInitialize和InstallFinalize之間。

那麼在檢查正在使用的文件之前是否有某種方法可以執行自定義操作?或者對給定文件禁用此檢查,或者在稍後的序列中進行檢查?

回答

1

是的,您可以通過修改MSI文件中the InstallExecuteSequence table中的序列列來指定發生操作的順序。

Get the ORCA tool檢查MSI文件,看看我的意思,並use a Javascript script to modify the MSI as appropriate

alt text http://i48.tinypic.com/29vxgco.jpg

+0

感謝您的信息。我實際上發現,我只是在調試模式下編譯WiX項目時發生了這個問題,但這似乎是我的問題的一個很好的答案,並且會很有用。 – Gerald 2010-02-09 23:55:27

相關問題