Domanda

Ho un progetto di installazione di Visual Studio che utilizzo per installare un'applicazione WinForms abbastanza semplice.Al termine dell'installazione ho una pagina di interfaccia utente personalizzata che mostra una singola casella di controllo che chiede all'utente se desidera eseguire l'applicazione.Ho visto altri installatori farlo abbastanza spesso.Ma non riesco a trovare un modo per fare in modo che il progetto di installazione esegua un eseguibile al termine dell'installazione.Un'idea?

NOTA:Non è possibile utilizzare le azioni personalizzate perché vengono utilizzate come parte del processo di installazione. Voglio eseguire l'applicazione installata una volta che l'utente preme il pulsante "Chiudi" al termine dell'installazione.

È stato utile?

Soluzione

Credo che questo sia uno dei veri limiti del progetto di installazione di Visual Studio.Devi essere in grado di modificare l'ultima pagina dell'interfaccia utente di installazione ma VS.NET non ti offre un modo per farlo.È possibile modificare le tabelle nel file .MSI dopo che è stato creato, ma VS.NET probabilmente sovrascriverebbe queste modifiche ogni volta che viene creato.Potresti essere in grado di sovrascrivere l'ultima pagina utilizzando un modulo di unione incluso nel progetto di installazione.In ogni caso dovrai acquisire familiarità con il modo in cui le finestre di dialogo dell'interfaccia utente vengono create in un .MSI e questo non è banale.

Potresti prendere in considerazione l'idea di passare a un programma di installazione basato su script gratuito o acquistare un'applicazione di creazione di configurazione commerciale (ma non acquistare InstallShield per amore di Pete).Dai un'occhiata a InstallAware (anche se non l'ho usato).

Altri suggerimenti

Puoi anche utilizzare azioni personalizzate

Ho appena trovato un modo molto semplice che non richiede strumenti esterni.Devi solo aggiungere un file di classe al progetto principale e un'azione personalizzata al progetto di installazione.

http://www.codeproject.com/KB/install/Installation.aspx

L'ho fatto per le app interne creando un cablaggio VB Script che avvia l'eseguibile di installazione, attende la chiusura e quindi avvia il secondo programma.

Potresti anche ottenere questo risultato con un po' più di rifinitura utilizzando alcune chiamate API Win in un eseguibile C.

Puoi usare MSILAUNCH (anche se riesco a farlo funzionare solo con MSICREATE).

http://www.cornerhouse.ca/en/msi.html

L'ho gestito invocando il metodo Main dell'assembly utilizzando la seguente riga:

(typeof(ClassWithinAssemblyToExecute)).Assembly.EntryPoint.Invoke(null, new Object[] {} )

puoi farlo tramite il programma di installazione personalizzato.basta aggiungere la classe di installazione e lì vedrai molti eventi come dopo l'installazione, prima dell'installazione.basta collegarsi dopo l'installazione e da lì eseguire l'exe per classe di processo.ti suggerirei di cercare su Google ulteriori informazioni sul programma di installazione personalizzato.ecco un buon collegamento che potrebbe aiutarti http://www.codeproject.com/Articles/19560/Launching-Your-Application-After-Install-using-Vis

Grazie

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