2009-02-26 57 views
1

我已經能夠觸發C#自定義操作來覆蓋MSI的安裝和提交階段。但是,在部署ASP.NET應用程序時,我希望能夠在安裝甚至開始之前執行檢查。MSI啓動條件自定義操作

我知道有啓動條件,但是,我希望能夠在這裏插入自己的代碼來處理自啓動時的檢查,因爲從我看到的啓動條件僅僅用於檢查正確版本的IIS等等?

任何人都可以在這裏指出我正確的方向,或者即使有一種方法來獲得啓動條件來發射一些C#嗎?

回答

1

我認爲使用自定義操作來設置屬性值,然後運行啓動條件來檢查屬性值將是一種方法。然而,這似乎並不適用於VS安裝項目,因爲自定義操作只有在啓動條件之後纔會運行。 WiX將允許更好的控制,並應允許更早執行自定義操作。

這樣做的一個粗略的方法是讓自定義操作拋出異常並安裝回滾,但這將是一個醜陋的黑客。

我發現一個forum thread討論如何檢查某個服務是否在安裝上運行,這可能會導致您在正確的方向。

+1

'論壇帖子'鏈接已死 – 2015-05-08 20:27:53

1

在LaunchConditions之後立即安排您的自定義動作立即。所有意圖和目的的結果都是一樣的。

在InstallShield中,只需通過下拉菜單選擇它即可。或者使用WiX的,這將是這樣的:

<Custom Action="BlahBlahBlah" After="LaunchConditions">1</Custom> 

與往常一樣,任何人都開始使用MSI我建議你閱讀The Definitive Guide to Windows Installer。它提供了寶貴的低級知識(使用Visual Studio安裝項目和Orca),無論您是使用WiX,InstallShield還是其他任何工具構建MSI文件,該知識都適用。