2010-10-07 2097 views
8

我使用Installaware創建了一個安裝包,並生成了一個EXE和一個MSI。 EXE爲3.1MB,MSI僅爲265K。爲什麼在尺寸上有如此大的差異?EXE和MSI安裝程序有什麼區別?

+0

如果下載大小有問題,我不建議在您的setup.exe文件中包含Windows Installer引擎。如果我依賴的是微軟發佈的全新引擎版本,我只包含引擎。否則幾乎所有連接到互聯網的系統都將安裝足夠的引擎。即使如此,我還是希望讓MSI通知用戶運行Windows Update以獲取最新的引擎,而不是自動安裝它。 – 2014-05-22 19:34:09

+0

[.msi和setup.exe文件的具體區別是什麼?](http://stackoverflow.com/questions/1789530/what-are-the-specific-differences-between-msi-and-setup -exe-file) – 2014-08-02 20:18:17

回答

-2

EXE可能包含安裝例程,否則該安裝例程由msiexec執行,該例程僅執行MSI中包含的任何安裝腳本。

+1

不,這是不準確的信息。請刪除。 – 2014-05-22 19:31:54

4

區別在於:MSI軟件包包含您的文件+安裝腳本,實際安裝由Microsoft Installer運行,該安裝程序是Windows的一部分,它負責顯示Windows,記錄消息等。另一方面,你的EXE安裝程序會持有文件+實際程序邏輯來運行安裝本身,幾乎負責任何事情,因此有所不同。

+0

有一點需要注意的是msiexec有許多版本,而你的.MSI文件將需要某個版本的Microsoft Installer。也就是說,經常更新Windows的用戶總是會安裝最新最好的msiexec。 – EboMike 2010-10-07 23:02:05

+0

實際上,從安裝工具(如InstallAware,Installshield或AdvancedInstaller)生成的EXE文件通常包含運行時和自舉功能,以自動方式啓動MSI安裝 - 有時以多種語言。 – 2014-05-22 19:37:51

10

MSI文件只能由啓動msiexec.exe - Windows安裝程序引擎。 MSI文件是能夠安裝軟件的Windows Installer數據庫文件。它要求Windows Installer Engine Runtime的正確版本至少可以安裝。大多數系統都是最新的引擎版本,因爲它是通過Windows Update下載的。

EXE文件你產生是同時包含MSI本身以及各種運行要求的設置可能有自解壓啓動應用

各種組件EXE文件可能包括:

  • Windows Installer Engine Runtime的版本的MSI要求(當前版本5.0)。這些日子這個運行時應該由Windows Update安裝,並且你的設置應該驗證它是否存在。
  • 由MSI自定義操作(INSTALLSCRIPT爲Installshield)所需的腳本運行時
  • 應用程序(目前獲得的10個版本)所需的.NET runtime version。我更喜歡使用Windows Update,但如果您的應用程序處於前沿狀態,則可能需要包含所需的引擎。
  • 標誌文件和啓動畫面,可能在多語言設置不同的語言
  • 其他一些部件可能

需要注意的是一個EXE文件也可以是一個非MSI安裝程序。換句話說,舊式安裝程序不是基於Microsoft MSI格式 - 這是存儲在辦公式樣式二進制文件中的MS-SQL數據庫 - 而是各種格式的安裝腳本,如Wise Script,Instalscript,Inno Setup等......然而,在這種情況下,問題是關於exe和MSA從InstallAware構建出來的大小之間的差異,然後區別在於上面解釋的運行時間。

相關問題