Come creare un semplice sistema di installazione per VB6 su XP/Vista e versioni successive?[Chiuso]

StackOverflow https://stackoverflow.com/questions/23836

  •  09-06-2019
  •  | 
  •  

Domanda

Forte enfasi sulla semplicità.Non ho mai fatto un installatore e preferirei non dover imparare molto.Un sistema a cui potrei consegnare una pila di file e che farebbe alcune ipotesi intelligenti su dove metterli sarebbe l'ideale.

Vai avanti e rispondi alla domanda generale.

Tuttavia, nei miei casi, sono bloccato da alcuni vincoli aggiuntivi.Il programma da installare è scritto in VB6 (o è 5?) e alcune versioni precedenti di VB, quindi è non verrà aggiornato presto.Ho un'installazione in esecuzione e avrò una VM pulita con cui giocare, quindi eseguirò un ciclo di:esegui l'installazione, trova dove è rotto, correggilo, aggiungilo al programma di installazione, ripristina la VM, riprova.Se qualcuno ha un approccio migliore sono aperto a suggerimenti.

IO DOVERE farlo funzionare su XP e mi piacerebbe davvero avere qualcosa che funzioni anche sulle versioni più recenti di Windows.

È stato utile?

Soluzione

InnoSetup O NSIS, qualunque cosa ti sembri più facile. ISTool è un simpatico strumento GUI per InnoSetup che rende la creazione di script di installazione ancora più semplice.

Altri suggerimenti

Ho usato InnoSetup diversi anni fa, prima di Vista, e allora ne ero molto soddisfatto.Avevo solo pochi file da installare e un'icona del menu Start.Ha funzionato benissimo ed è stato facile da imparare.

Camminatore della dipendenza è molto utile per scoprire quale DLL manca dal programma di installazione.Una volta che conosci la dll, puoi trovare in quale modulo di unione si trova utilizzando il file Trova modulo unione.

Ho lavorato con NSIS e, superando alcune delle sue piccole complessità, è un sistema fantastico.è gratuito, offre tantissime funzionalità di plug-in e sono riuscito a fare tutto ciò di cui avevo bisogno.

La creazione di un pacchetto di installazione completo per un programma è quasi un argomento a sé stante.Ci sono molti fattori da considerare e la maggior parte di noi non utilizza più Windows 95.Il mondo non è più semplice come una volta.

Ci sono molte cose che devono essere affrontate e alcuni di questi problemi di "configurazione" implicano anche la modifica del programma.Ad esempio il concetto di "cartelle protette" che sembrava essere nuovo per le persone quando è entrato in scena Vista UAC.Immagino che funzionassero tutti come amministratori o qualcosa del genere?Nella sua forma più semplice significa che non inserisci più file scrivibili accanto all'EXE in Programmi (noti anche come "Programmi").

Un altro fattore è che è cambiato il modo in cui viene utilizzato il registro.Non sto parlando della virtualizzazione del registro, anche se anche questa ne fa parte.Ma la registrazione COM può essere eseguita sia per macchina che per utente e anche la disattivazione dell'UAC può rovinare tutto.Vedere Registrazioni COM per utente e processi elevati con UAC su Windows Vista SP1.Il risultato è che un pacchetto di installazione non dovrebbe eseguire regsvr32 (o chiamare in altro modo il punto di ingresso di auto-registrazione di una libreria COM).Vedi "Osservazioni" a Tabella AutoReg.


Il programma di installazione di Windows è IL modo di andare avanti nella maggior parte dei casi.I programmatori VB6 hanno a disposizione Visual Studio Installer 6.0 versione 1.1 come download gratuito per la creazione di pacchetti MSI.Vedere "Server COM" nell'articolo VFP Utilizzo del programma di installazione di Microsoft Visual Studio per la distribuzione di applicazioni Visual FoxPro 6.0 per alcune preziose informazioni.

Questa non è l'opzione più semplice, ma in VSI 1.1 è disponibile una procedura guidata di installazione VB per aiutare a ottenere le nozioni di base corrette.Le operazioni avanzate come la creazione di una sottocartella [CommonAppData] e l'impostazione dei diritti per tutti su di essa devono essere eseguite in un passaggio post-compilazione all'esterno dell'IDE.È qui che gli strumenti di terze parti possono essere utili per darti maggiore controllo senza ricorrere a Orca o agli script di installazione post-compilazione.

Quei ragazzi che creano programmi di installazione "legacy" con script cercano di tenere il passo, ma lo scripting diventa sempre più complicato.I risultati a volte sono incerti.Windows 7 introduce alcune nuove rughe.

Sebbene ClickOnce non sia realmente l'opzione migliore per VB6, nulla dice che non puoi utilizzare COM senza reg per le installazioni XCopy di molti programmi.COM senza registrazione può anche essere una buona opzione da utilizzare in un pacchetto di installazione.


Quindi, alla fine, il modo "più semplice" per distribuire i programmi VB6 sarà probabilmente quello di pacchetti COM XCopy privi di reg racchiusi in un EXE autoestraente che attiverà uno script per creare un collegamento al menu Start.Se puoi vivere senza la scorciatoia, è ancora più semplice:basta decomprimere il pacchetto dove deve andare!

Vedere Fai il mio manifesto o strumenti alternativi per la creazione di pacchetti COM senza reg.

Ciò richiede che i sistemi di destinazione eseguano XP (preferibilmente SP2) o versioni successive.L'unico problema possibile qui è che XP non includeva i runtime VB6 SP6 fino a XP SP3, quindi ti consigliamo di testare prima il tuo programma rispetto ai runtime VB6 SP5.Bene, un altro problema tecnico:non è possibile utilizzare gli EXE ActiveX in questo modo, richiedono comunque la registrazione.

Il mio consiglio è questo.Cerca di mantenere il programma di installazione il più semplice possibile.Windows Installer è un software molto complicato e quando le cose non funzionano correttamente può essere difficile capire cosa sta succedendo.Sono sicuro che tutti abbiamo sperimentato il ciclo infinito di Windows Installer che tenta di riparare un file di cui non si dispone più del file .msi di origine.

Nella maggior parte dei casi utilizzare Windows Installer è come usare una mazza per rompere una noce.

Utilizzo InnoSetup per le mie cose e InstallShield al lavoro (contro la mia volontà).Inizia con un semplice programma di installazione basato su script e utilizza Windows Installer solo se hai una buona ragione per farlo.

Tieni presente che il supporto per l'installazione degli assembly nella GAC ​​potrebbe mancare per alcuni strumenti di installazione non Windows Installer (come InnoSetup).

IO usato ad ADORARE Inno Setup.Enfasi su "usato".

Quando esegui il programma di installazione a file singolo (cosa faresti normalmente), decomprime il programma di installazione reale in una cartella sotto la cartella temporanea e quindi tenta di eseguirlo.Il problema è...alcuni programmi antivirus non lo consentono.

L'autore ne è consapevole e si rifiuta di fare qualsiasi cosa al riguardo.Il nome della cartella è casuale, quindi non può essere aggiunto a nessun elenco di esenzioni utilizzato dal programma antivirus.

Ancora.L'autore ne è consapevole e suggerisce di dire ai miei utenti di disattivare i programmi antivirus durante l'installazione.(Come se stesse per succedere)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top