2012-06-17 84 views
5

我有一個用來創建其他程序並從*的.cs源文件編譯程序

            using System.CodeDom.Compiler;如何以編程方式創建MSI安裝程序?

我想也創建一個安裝的編譯的程序,但我我想知道我是否可以通過編程的方式來實現, 因此當我點擊我的主應用程序中的Build Now按鈕時,一個新的安裝程序將出現在選定的目標上。

有沒有辦法通過點擊按鈕來爲已編譯的程序(我建立的程序)創建一個msi安裝程序。

我不想每次使用InstallShield我想爲我編譯的程序創建一個安裝程序。

任何幫助將高度讚賞

+0

如果您有與InstallShield一起工作的事情,那麼總是會有自動化接口和/或命令行構建支持。 –

回答

9

我建議你使用WiX。這是一個非常強大的安裝程序構建工具。您可以使用它來使用命令行工具創建安裝文件,這些工具可以從您的構建程序中使用。

+0

同意@Amirshk。 WIX絕對是您的選擇。擊敗像Wise這樣的二元努力最終都會結束。 –

+0

一些更多的信息。優點和缺點:[使用什麼安裝產品? ** InstallShield **,** WIX **,** Wise **,**高級安裝程序**等](http://stackoverflow.com/questions/1544292/what-installation-product-to-use-的InstallShield-威克斯明智先進的安裝程序/ 1546941#1546941)。 –

3

WiX現在與Deployment Tools Foundation集成在一起,這是一個圍繞Windows Installer API的完整包裝。當你安裝WiX時,你也會得到DTF。這應該允許你以編程方式處理任何與MSI相關的場景。還有一些文檔,但您需要對MSI數據庫有相當嚴格的理解才能掌握API。如果可能的話,我會避免這種情況,並使用WiX路線。

隨着vdproj設置項目在VS11中被殺死,學習WiX是一個相當好的時間投入,比掌握VS試圖引導你的其他選項要好得多。