2010-03-16 7 views
11

Eventuali duplicati:
What are the specific differences between .msi and setup.exe file?Quali sono le differenze tra i programmi di installazione MSI e EXE e quali dovrei scegliere?

Sto lavorando su un programma di installazione per una nuova versione del mio progetto (C#).

In precedenza, ho utilizzato Inno Setup per creare i file .exe per l'installazione dei miei progetti su altri computer sul posto di lavoro. Durante la lettura di alcuni tutorial, tuttavia, mi sono imbattuto in Windows Installer XML, che utilizza file XML per creare un programma di installazione .msi.

Il mio progetto sarà disponibile su una condivisione di rete che tutti i dipendenti hanno accesso a in modo da poter installare il software (attualmente sto lavorando ad un aggiornamento checker pure)

Quali sono le principali differenze tra .exe e gli installatori .msi? Perché dovrei scegliere uno rispetto all'altro? Potrebbe avere più senso dato il mio ambiente specifico?

Ho trovato alcune delle informazioni at this question, ma non c'erano molte informazioni.

+0

vedere anche http://stackoverflow.com/questions/902841/why-do-so-many-programs-have-both-a-setup-exe-and-a-setup-msi – rds

risposta

5

Non userei WiX per un nuovo progetto. Userei un 'progetto di installazione' in Visual Studio per creare un MSI. Un progetto di installazione è molto, molto più facile da mettere insieme.

Molti installatori exe sono in realtà stub o contenitori che contengono un MSI, btw.

Immagino che tu abbia controllato http://en.wikipedia.org/wiki/Windows_Installer?

MSI offre agli amministratori la possibilità di limitare installazioni, rebase installazioni, modificare o aggiungere azioni personalizzate, automatizzare installazioni/reinstallazioni/disinstallazioni, registrazione e switch standard. Si integra davvero in un ambiente IT aziendale (http://technet.microsoft.com/en-us/library/bb742606.aspx).

Un programma di installazione personalizzato può avere molte di queste funzionalità, ma ciò dipenderà dal pacchetto di installazione.

+1

Volevo solo che nessuno chi ha visto questa risposta sa che non è più accurato per la versione di Visual Studio oltre il 2010. Visual Studio 2012 non supporta più i progetti di installazione e distribuzione. –

+0

Per Visual Studio 2013 e versioni successive, esiste un'estensione denominata "Progetti di Microsoft Visual Studio 2013 Installer" (sostituire 2013 con la versione corrente) sul marketplace VS, che supporta i vecchi progetti di installazione. Tuttavia, ha un bug che impedisce l'installazione di applicazioni a 64 bit, e il testo nella procedura guidata che produce non ha anti-aliasing, quindi sembra obsoleto. –

5

La maggior parte degli installatori di file EXE disponibili oggi sono semplicemente stub per verificare che il computer di destinazione disponga di un supporto sufficiente per avviare un MSI archiviato all'interno dell'EXE. Effettuano il controllo della versione di base di Windows e il controllo della versione di Windows Installer, quindi invocano essenzialmente msiexec e consentono a Windows Installer di gestire il resto.

Per un'installazione di base, il progetto di installazione in Visual Studio è in grado di farti fare a meno, ma per qualsiasi tipo di personalizzazione o tweaking reale è necessario un vero editor MSI. Usiamo WiX e lo adoriamo, ma è un orso da imparare. Se hai i soldi puoi investire in InstallShield - ma questo ha il suo set di stranezze.

3

MSI è configurable mentre EXE no. So che questo non risponde direttamente alla tua domanda, ma ho pensato di puntare alla tecnologia ClickOnce.

MSDN: See example here.

In parole povere, un'applicazione ClickOnce è un qualsiasi Windows Presentation Foundation, Windows Form, o console applicazione pubblicati utilizzando la tecnologia ClickOnce . È possibile pubblicare un'applicazione ClickOnce in tre modi diversi: da una pagina Web, da a condivisione di file di rete o dal supporto come un CD-ROM. Un'applicazione ClickOnce può essere installato su computer di fine dell'utente e gestito localmente anche quando il computer non è in linea, oppure può essere eseguito in una modalità online-only senza installare in modo permanente nulla sul computer dell'utente finale. Per ulteriori informazioni, consultare Scelta di una strategia di distribuzione ClickOnce .

+0

Interessante - Ero a conoscenza di ClickOnce, ma pensavo fosse solo un modo per distribuire software su Internet. Dovrò dare un'occhiata alla rete condivisa - grazie! –

+0

Sfortunatamente ClickOnce non ha CustomActions. – ABCD

1

La fabbrica MSI di IndigoRose è estremamente potente e molto, molto più economica di InstallShield.

Utilizza WiX internamente e consente di modificare i file XML in qualsiasi modo. Il bootstrapper (.exe, se ne aggiungi uno) ha un potente motore di scripting basato su Lua per fare ... bene qualsiasi cosa.