Quali sono le differenze specifiche tra .msi e file setup.exe?


193

Ho cercato molto, ma tutte sono risposte indovinate. Aiutami a trovare la risposta esatta.




Volevo installare un programma fornito con un programma di installazione sia EXE che MSI. Ho installato per la prima volta da MSI, che ha installato solo i file di programma (non alcun prerequisito o dipendenza, e non ha creato le icone del menu Start). Quando ho avviato manualmente il programma, non è riuscito a dire che mancavano alcune DLL. L'installazione da EXE ha installato anche altre cose e il prodotto ha funzionato perfettamente. Direi che se un produttore di software fornisce un'opzione EXE e MSI per l'installazione, usa EXE.
James L.,

Risposte:


232

Un MSI è un database di Windows Installer. Windows Installer (un servizio installato con Windows) lo utilizza per installare software sul sistema (ad es. Copiare file, impostare valori di registro, ecc ...).

Un setup.exe può essere un bootstrapper o un programma di installazione non msi. Un programma di installazione non MSI estrarrà le risorse di installazione da se stesso e gestirà direttamente la loro installazione. Un bootstrapper conterrà un MSI anziché singoli file. In questo caso, setup.exe chiamerà Windows Installer per installare MSI.

Alcuni motivi per cui potresti voler utilizzare un setup.exe :

  • Windows Installer consente l'installazione di un solo MSI alla volta. Ciò significa che è difficile che un MSI installi altri MSI (ad es. Dipendenze come .NET framework o runtime C ++). Poiché setup.exe non è un MSI, può essere utilizzato per installare più MSI in sequenza.
  • Potrebbe essere necessario un controllo più preciso su come viene gestita l'installazione. Un MSI ha regole molto specifiche su come gestisce le installazioni, inclusa l'installazione, l'aggiornamento e la disinstallazione. Un setup.exe offre il controllo completo sul processo di configurazione del software. Questo dovrebbe essere fatto solo se hai davvero bisogno del controllo extra poiché richiede molto lavoro e può essere complicato farlo nel modo giusto.

7
Stavo per scrivere questo - questo è probabilmente quello che sta cercando
Mongoose il

1
Nella mia esperienza, la creazione di un programma di installazione MSI è molto impegnativa rispetto alla creazione di un programma di installazione basato su exe. Questo dipende in gran parte dagli strumenti che stai usando per costruire il programma di installazione in primo luogo. Sfortunatamente, tutti gli strumenti di installazione basati su MSI che ho visto sono stati strumenti di GUI commerciali o strumenti complessi basati su WiX. Nessuno dei due si adatta particolarmente bene alle mie esigenze (ovvero costruendo automaticamente programmi di installazione con uno script).
craftworkgames

Quindi mi chiedo ancora perché esiste l'MSI. Quale problema stava cercando di risolvere quando exe sembra funzionare bene?
The Muffin Man

14

I file .msi sono file di Windows Installer senza il runtime di Windows Installer, setup.exe può essere qualsiasi programma eseguibile (probabilmente uno che installa roba sul tuo computer)


9

MSI è un file di installazione che installa il programma sul sistema in esecuzione.

Setup.exe è un'applicazione (file eseguibile) che ha i file msi come una delle risorse. L'esecuzione di Setup.exe a sua volta eseguirà msi (programma di installazione) che scrive l'applicazione nel sistema.

Modifica (come suggerito nel commento): i file eseguibili di installazione non hanno necessariamente una risorsa MSI internamente


I file eseguibili di installazione non hanno necessariamente una risorsa MSI internamente.
jkmartindale,

-10

MSI è fondamentalmente un programma di installazione di Microsoft integrato in Windows. Associa i componenti alle funzionalità e contiene informazioni sul controllo dell'installazione. Non è necessario che questo file contenga i file richiesti dall'utente, ovvero i programmi applicativi che l'utente si aspetta. MSI può contenere un altro setup.exe al suo interno che avvolge MSI, che in realtà contiene i file richiesti dall'utente.

Spero che questo ti chiarisca i dubbi.


13
Questo è confuso e generalmente errato - in quanto i MSIfile di solito NON avvolgono i setup.exefile, ma piuttosto viceversa.
Flak DiNenno,

"MSI può contenere un altro setup.exe al suo interno che avvolge MSI" non è corretto! Piuttosto, è vero il contrario: un .exe ha un .msi al suo interno.
UNO
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.