2010-10-07 15 views
8

Ho creato un pacchetto di installazione utilizzando Installaware e generato un EXE e un MSI. L'EXE è 3,1 MB e l'MSI è solo 265K. Perché c'è una così grande differenza di dimensioni?Qual è la differenza tra un programma di installazione EXE e MSI?

+0

Non è consigliabile includere il motore di Windows Installer con il file setup.exe se la dimensione del download è un problema. Includo il motore solo se sono dipendente da una nuova versione del motore appena uscito da Microsoft. Altrimenti quasi tutti i sistemi connessi a Internet avranno un motore adeguato installato. E anche allora preferisco che l'MSI informi l'utente di eseguire Windows Update per ottenere il motore più recente invece di installarlo automaticamente. –

+0

possibile duplicato di [Quali sono le differenze specifiche tra i file .msi e setup.exe?] (Http://stackoverflow.com/questions/1789530/what-are-the-specific-differences-between-msi-and-setup -exe-file) –

risposta

-2

L'EXE contiene probabilmente routine di installazione altrimenti eseguite da msiexec, che esegue solo qualsiasi script di installazione contenuto nell'MSI.

+1

No, questa non è una informazione accurata. Cancella per favore. –

4

La differenza è: il pacchetto MSI contiene i file + lo script di installazione e l'installazione effettiva viene eseguita da Microsoft Installer, che fa parte di Windows, e si occupa della visualizzazione di Windows, dei messaggi di registrazione, ecc. , il tuo programma di installazione EXE contiene i file + la logica del programma per eseguire l'installazione stessa, essendo responsabile di praticamente tutto, quindi la differenza.

+0

Una cosa da notare è che ci sono molte versioni di msiexec e il tuo file .MSI richiede una determinata versione di Microsoft Installer. Detto questo, gli utenti che aggiornano regolarmente Windows avranno sempre l'ultimo e più grande msiexec installato. – EboMike

+0

In realtà un file EXE generato da uno strumento di installazione come InstallAware, Installshield o AdvancedInstaller generalmente contiene i runtime e le funzionalità di avvio per avviare l'installazione MSI in modi automatici, a volte in diverse lingue. –

10

Un file MSI può essere lanciata solo da msiexec.exe - Windows Installer motore. Un file MSI è un file di database di Windows Installer in grado di installare software. Richiede la versione corretta di Windows Installer Engine Runtime come minimo per essere installabile. La maggior parte dei sistemi sono aggiornati con le ultime versioni del motore da quando scende tramite Windows Update.

Il file EXE si genera è un autoestraente di avvio delle applicazioni contenente sia il MSI stesso così come diverse esigenze di runtime che l'installazione potrebbe avere.

Vari componenti un file EXE possono includere:

  • La versione del Windows Installer Engine Runtime MSI richiede (attuale versione 5.0). In questi giorni questo runtime dovrebbe essere installato da Windows Update e la tua installazione dovrebbe solo verificare che sia presente.
  • tempi di esecuzione scripting richiesto dalle azioni personalizzate nel MSI (InstallScript per Installshield)
  • Il .NET runtime version richiesto dall'applicazione (Guadagnare su 10 versioni ora). Preferirei usare Windows Update anche per questo, ma se la tua applicazione è all'avanguardia, potresti voler includere il motore richiesto.
  • file Logo e splash screen, potenzialmente in lingue diverse per configurazioni multi-lingue
  • Diversi altri componenti sono possibili

Si noti che un file EXE può anche essere un programma di installazione non-MSI. In altre parole, un programma di installazione vecchio stile non basato sul formato Microsoft MSI, che è un database MS-SQL memorizzato in un file binario in stile Office, ma uno script di installazione di vari formati come Wise Script, Instalscript, Inno Setup, ecc. ... Tuttavia, in questo caso la domanda riguardava la differenza di dimensioni tra l'exe e l'MSI che usciva da un build InstallAware, e quindi la differenza è rappresentata dai runtime illustrati sopra.

Problemi correlati