Newsgroup: it.comp.os.win.win2000
Titolo: Differenza fra installer EXE e MSI

Ciao a tutti,
Nello scaricare l'ottimo 7-Zip ho visto che l'installer si presenta 
nelle due modalità EXE e MSI.
Che differenza c'è e soprattutto che indicazioni esistono in merito 
all'utilizzo di uno o dell'altro pacchetto di installazione?
Grazie a tutti voi
Atque



Un file .exe è qualunque cosa che si può installare, infatti esso
contiene codice eseguibile che viene lanciato su quella macchina.
Un file .msi è un file di database utilizzato da Windows Installer, e
contiene informazioni sull'applicazione (le sue caratteristiche, i
componenti, i collegamenti ecc..). Il file .msi contiene anche
l'interfaccia di installazione e tutti quelle informazioni per
effettuare particolari installazioni personalizzate.
Oggi i file .msi sono il metodo consigliato da Microsoft (se possibile)
per installare le applicazioni. A tutto pensa Msiexec.exe (il cuore di
Windows Installer) che legge i dati nel file .msi e si occupa
dell'installazione.
-- 
Rossano Orlandini
MCSE MCSA MVP - Windows Server

 dell'installazione.
Ti ringrazio di cuore!
Ciao
Atque

Rossano Orlandini [MVP] ha scritto:
 > Oggi i file .msi sono il metodo consigliato da Microsoft (se possibile)
 > per installare le applicazioni. A tutto pensa Msiexec.exe (il cuore di
 > Windows Installer) che legge i dati nel file .msi e si occupa
 > dell'installazione.
Ho provato ad installare il MSI monitorando la procedura con un software 
di monitoraggio delle installazioni (Total Uninstall) ed ho notato che 
la disinstallazione dell'applicazione tramite lo stesso MSI 
(Installazione Applicazioni da Pannello di Controllo) non effettua la 
rimozione di quasi nessuna delle informazioni dal registro....
E' quindi possibile che i files MSI, non diversamente dagli installer 
EXE non facciano bene il loro lavoro?
Ciao
Atque

 EXE non facciano bene il loro lavoro?
Il discorso è molto più ampio...
Con gli anni si è andati (a torto o a ragione) sempre di più verso una maggiore integrazione tra i programmi e il sistema operativo (dll condivise, registro condiviso etc) e sebbene ciò abbia portato alcuni vantaggi, ha anche prodotto come effetto collaterale il funzionamento spesso imperfetto degli uninstaller.
In ogni caso, il sistema MSI non è altro che una piattaforma in mano allo sviluppatore ed è stata creata soprattutto per cercare di limitare i danni che spesso provengono dai diffusissimi installer/uninstaller di terze parti attualmente in circolazione. Capita a volte che uno di questi sw di installazione (bacato) possa causare instabilità all'intero sistema, per cui si è pensato di fornire una serie di funzioni collaudate e sicure ed ecco che è nato MSI.
Per la sua stessa natura quindi, la piattaforma MSI non è che uno strumento nelle mani del programmatore e sta alla sua abilità far sì che la rimozione del sw sia quanto più possibile perfetta.
Teoricamente, un buon uninstaller, dovrebbe essere in grado di rimuovere tutti i files e tutte le chiavi di registro create durante l'installazione, ciononostante a volte si può preferire che ciò non avvenga, in maniera da lasciare le impostazioni e i settaggi memorizzati nel caso venga effettuata una successiva reinstallazione del sw (ad esempio in quei casi in cui si voglia disinstallare un sw per upgradarlo ad una versione superiore), per cui lo standard MSI deve prevedere anche tutte queste possibilità.
D'altro canto, spesso i programmi durante l'esecuzione creano a loro volta delle nuove chiavi di registro che, non essendo state create durante il setup, non vengono poi rimosse nella disinstallazione.
L'unico modo di avere una disinstallazione completa e pulita sarebbe quello di non utilizzare per niente il registro, installare il programma e le sue librerie in una cartella che verrà poi rimossa completamente al momento della disinstallazione qualunque sia il suo contenuto (con eventuali files temporanei e di configurazione creati dal programma durante il suo funzionamento), ma questo ormai sono in pochi a farlo.

 ma questo ormai sono in pochi a farlo.
Perle rare di una programmazione di altri tempi quando lo spazio era poco ed ogni mega era oro.

Il discorso è molto più ampio...
Il mio mouse non ha lo scroller orizzontale... ;-)
-- 
Ci sono 10 tipi di persone al mondo: quelle che capiscono il sistema binario
e quelle che non lo capiscono.

 poco ed ogni mega era oro.
Esatto :-) tempi aurei soffusi oramai della luce azzurrina della lontananza.
Quello che non ho mai capito è perché Windows non abbia mai implementato 
una procedura nel quale sia il sistema operativo a monitorare le proprie 
variazioni indotte dalle procedure di installazione di software anziché 
demandare tutto ad installer esterni la cui qualità può essere pessima...
Ciao
A.

ishka ha scritto:
 > Perle rare di una programmazione di altri tempi quando lo spazio era 
poco ed ogni mega era oro.
Esatto :-) tempi aurei soffusi oramai della luce azzurrina della lontananza.
Quello che non ho mai capito è perché Windows non abbia mai implementato 
una procedura nella quale sia il sistema operativo a monitorare le 
proprie variazioni indotte dalle installazioni di software anziché 


 demandare tutto ad installer esterni la cui qualità può essere pessima...
Siamo in due a non capirlo, ma sono tante le scelte m$ che non capisco.
Si vede che son pigri oppure sara' una strategia per spennare i polli vendendo
poi gli aggiornamenti. Boh non saprei.
Eppure basterebbe poco, intanto eliminare il registro di sistema, cosa alquanto inutile.
Non basare la lettura dei file sul nome ma sull'intestazione interna.
Non infilare tutto a mo di calderone in system32, ma dividere le librerie dai driver
un installer che genera uno script di installazione in un sistema fatto cosi te lo leggi e puoi togliere tutto a mano
nel caso ci fossero difficolta'.
La separazione della gui dal motore grafico, la localizzazione separata, vuoi mettere cambiare una dll con dentro tutta la traduzione
del sistema che non dover mettere le mani anche nel kernel? 
Sara' che sono rimasto all'amiga come filosofia di sistema, boh.....

 alquanto inutile.
difficile poter pensare che ciò accada in futuro dal momento che il 
registro fu introdotto da Win95
Ciao
A.

 registro fu introdotto da Win95
beh o dio magari rinsaviscono :-D mi sembra che vista non abbia piu' la gui nel kernel ma funzioni con un
server grafico, almeno mi pare di aver sentito una cosa del genere, di solito non seguo le news della m$.

 solito non seguo le news della m$.
non saprei se augurarmelo ma credo che fra non molto utilizzerò 
strumenti di lavoro che mi porteranno lontano da queste logiche.....
ciao
a.

 strumenti di lavoro che mi porteranno lontano da queste logiche.....
Per ora ancora no, ma spero in capo a 2 anni di allontanarmi parecchio anch'io. :-D

 anch'io. :-D
.... penso che pur senza nominarlo sappiamo entrambi ciò di cui stiamo 
parlando.... ;-)
ciao
a.

Atque ha scritto:

Credo proprio di si :-D