2010-12-13 53 views
10

我使用安裝程序部署我的應用程序,該安裝程序是使用Visual Studio中的安裝和部署項目創建的。當我建立安裝項目時,我得到一個.exe和一個.msi文件。.Net安裝程序 - .exe和.msi之間的差異

我想知道他們之間的區別。

我注意到如果沒有.msi,.exe不能工作,但反過來並不是這樣。

+0

我也想知道這個答案。 +1 – 2010-12-13 13:25:03

+0

我總是想知道! – TabbyCool 2010-12-13 13:26:05

回答

1

阿德里安是正確的。這可能會添加更多信息。

http://www.ghacks.net/2009/03/23/msi-or-exe-setup/

+1

您可以添加/引用/彙總該鏈接的一些內容嗎?在鏈接腐爛的情況下,這將在未來無用...... – 2011-02-18 17:58:53

10

該exe文件是一個bootstrapper安裝任何必需的先決條件,然後調用您的設置,這是msi文件。

您可以通過自身啓動安裝,運行MSI文件,但如果需要的先決條件未安裝(可能的例子:.NET Framework中,VC++可再發行,MSI的新版本等),它會失敗

當你試圖用引導程序(exe文件)運行安裝程序並缺少msi時,它會失敗,因爲基本上它會安裝所有先決條件,然後它會嘗試啓動安裝程序(msi文件)。如果文件不在那裏,它就沒有什麼開始。

根據您的應用需求,類似的技術將使用Merge Modules作爲您的應用程序先決條件。合併模塊基本上會將所有必需的組件加載到主安裝程序中,因此您最終只需使用一個包含所有內容的MSI文件。您必須確保您使用的每個組件都具有可用的合併模塊,如果沒有,則必須使用引導程序。

1

相信MSI文件是安裝腳本只是,與聯想是Windows安裝程序。可執行文件包裝MSI,創建一個幾乎完全相同的東西,但可以安裝先決條件的加載器。