none
Installazione silente da codice RRS feed

  • Domanda

  • salve. Sviluppando un installer sempre per il mio gioco mi tocca installare componenti aggiuntivi quali XNA GAME STUDIO 4.0 che l'utente può avere o non avere installato. ebbene, conoscendo il fatto che per avviare un applicazione basti usare "System.Diagnostic.Process.Start("nome_processo", "eventuali args", ecc...)", come posso avviare un eseguibile, che di fatto è un applicazione installabile, in modo silenzioso? cioè avviarlo senza che l'utente gli si presenti davanti l'interfaccia dell'installatore in questione?
    domenica 22 luglio 2012 09:47

Risposte

  • questo è quello che mi interessa:

    /q n|b|r|f

    Sets user interface level.

    q , qn - No UI

    qb - Basic UI. Use qb! to hide the Cancel button.

    qr - Reduced UI with no modal dialog box displayed at the end of the installation.

    qf - Full UI and any authored FatalErrorUserExit, or Exit modal dialog boxes at the end.

    qn+ - No UI except for a modal dialog box displayed at the end.

    qb+ - Basic UI with a modal dialog box displayed at the end. The modal box is not displayed if the user cancels the installation. Use qb+! or qb!+ to hide the Cancel button.

    qb- - Basic UI with no modal dialog boxes. Please note that /qb+- is not a supported UI level. Use qb-! or qb!- to hide the Cancel button.

    Note that the ! option is available with Windows Installer 2.0 and works only with basic UI. It is not valid with full UI.

    se uso "System.diagnostic.Process.Start("pacchetto.exe", "/q")" oppure "q" senza / :S

    • Contrassegnato come risposta gabry90 domenica 22 luglio 2012 18:15
    domenica 22 luglio 2012 13:22
  • ecco, una domanda....se voglio impostare piu parametri metto lo spazio tra un paramtro e l'altro oppure no? nel senso così "/q /w" o così "/q/w"?

    Dipende da come è fatto il parser per i parametri della riga di comando. Solitamente si lasciano gli spazi, ma possono esserci parser che intepretano correttamente anche i parametri "non spaziati". Fai comunque una prova per fugare ogni dubbio.

    e un ultima cosa....questi sono parametri standard per pacchetti MSI, se nel caso invece devo installare pacchetti non MSI, e quindi semplici exe o altro? ci sono altre specifiche?

    Se sono eseguibili, quindi programmi standalone, ognuno può avere i suoi parametri. Non esistono specifiche universali.


    Marco Minerva [MCPD]
    Blog: http://blogs.ugidotnet.org/marcom
    Twitter: @marcominerva

    • Contrassegnato come risposta gabry90 domenica 22 luglio 2012 18:15
    domenica 22 luglio 2012 13:55
    Moderatore

Tutte le risposte

  • Per installare i componenti necessari devi integrarli nel pacchetto di installazione, è questo il modo giusto.

    Nel caso di XNA devi installare il framework e non l'IDE (Game Studio).

    Ci sono diversi tool che consentono di creare installer, trova il migliore in base a qualità prezzo se non vuoi usare quello standard di Visual Studio.

    Matteo Migliore

    Bloghttp://blogs.ugidotnet.org/matteomigliore
    Twitterhttp://twitter.com/matteomigliore
    CodePlex

    domenica 22 luglio 2012 10:51
  • Ciao gabry90,

    salve. Sviluppando un installer sempre per il mio gioco mi tocca installare componenti aggiuntivi quali XNA GAME STUDIO 4.0 che l'utente può avere o non avere installato. ebbene, conoscendo il fatto che per avviare un applicazione basti usare "System.Diagnostic.Process.Start("nome_processo", "eventuali args", ecc...)", come posso avviare un eseguibile, che di fatto è un applicazione installabile, in modo silenzioso? cioè avviarlo senza che l'utente gli si presenti davanti l'interfaccia dell'installatore in questione?

    hai già pensato all'utilizzo di MsiBulder ? , trovi informazioni qui seguito .

    Ciao.


    domenica 22 luglio 2012 10:52
  • Come già detto in altre discussioni, non capisco il motivo per cui ti stai scrivendo tool già esistenti. Soprattutto gli installer, che sono disponibili in tutte le salse: tanto per dirtene uno, oltre a quello integrato in Visual Studio, c'è Inno Setup, che funziona veramente bene ed è semplicissimo da utilizzare: http://www.jrsoftware.org/isinfo.php/.

    Considera che creare un installer non è una cosa banale: devi prevedere il fatto che, in caso di fallimento, tutti i file installati fino a quel momento vengano cancellati, in modo da non lasciare l'installazione in uno stato inconsistente, inoltre devi creare anche una procedura di disinstallazione, che rimuova tutti i file creati dall'applicazione, ma lasci intatti gli eventuali file dell'utente creati nelle stesse posizioni.

    E naturalmente, devi verificare l'esistenza di tutti i prerequisiti, installandoli solo se necessario. E devi gestire il fatto che anche l'installazione dei prerequisiti può fallire, cosa che deve far fallire il setup stesso del tuo gioco.

    Quindi la domanda è sempre la solita: il gioco vale la candela?


    Marco Minerva [MCPD]
    Blog: http://blogs.ugidotnet.org/marcom
    Twitter: @marcominerva

    domenica 22 luglio 2012 10:54
    Moderatore
  • si sono a conoscenza delle difficoltà...allora partiamo dal presupposto che io voglia creare il tool da zero. Non capisco perchè mi debba affidare a cose esterne quando la programmazione permette di fare miracoli. Io tutto questo questo poi lo uso anche a scopo didattico, per imparare, se chiedo un aiuto su algoritmi e metodi per esempio di installazioni silente perchè mi dovete sempre dare link su app esterne di cui ne sono a conosocenza? se pensate che io voglia usare innosetup perchè pensate che mi preoccupi di scrivere qua sul forum allora?   
    domenica 22 luglio 2012 11:13
  • Semplicemente perché noi stiamo cercando di consigliarti il modo migliore per realizzare ciò di cui hai bisogno.

    Non credo che sviluppare un installer sia il modo migliore per imparare ad utilizzare C#, dal momento che dovrai affrontare delle problematiche (come quelle descritte, ma non solo), che difficilmente ti serviranno in altri contesti.

    Ovviamente, questa è solo la mia opinione.

    Detto questo, se vuoi continuare sulla tua strada, devi avviare l'installazione dei componenti aggiuntivi utilizzando gli appositi argomenti della riga di comando, come trovi descritto qui: http://msdn.microsoft.com/en-us/library/windows/desktop/aa367988(v=vs.85).aspx.


    Marco Minerva [MCPD]
    Blog: http://blogs.ugidotnet.org/marcom
    Twitter: @marcominerva

    domenica 22 luglio 2012 11:36
    Moderatore
  • devi avviare l'installazione dei componenti aggiuntivi utilizzando gli appositi argomenti della riga di comando, come trovi descritto qui: http://msdn.microsoft.com/en-us/library/windows/desktop/aa367988(v=vs.85).aspx.

    ecco...questo per esempio mi è molto utile. grazie...non è che ci voleva molto eh....XD...quindi dici che ogni pacchetto di installazione per windows ha queste specifiche standard?
    domenica 22 luglio 2012 11:41
  • Tutti i pacchetti MSI seguono queste specifiche.

    Marco Minerva [MCPD]
    Blog: http://blogs.ugidotnet.org/marcom
    Twitter: @marcominerva

    domenica 22 luglio 2012 11:44
    Moderatore
  • questo è quello che mi interessa:

    /q n|b|r|f

    Sets user interface level.

    q , qn - No UI

    qb - Basic UI. Use qb! to hide the Cancel button.

    qr - Reduced UI with no modal dialog box displayed at the end of the installation.

    qf - Full UI and any authored FatalErrorUserExit, or Exit modal dialog boxes at the end.

    qn+ - No UI except for a modal dialog box displayed at the end.

    qb+ - Basic UI with a modal dialog box displayed at the end. The modal box is not displayed if the user cancels the installation. Use qb+! or qb!+ to hide the Cancel button.

    qb- - Basic UI with no modal dialog boxes. Please note that /qb+- is not a supported UI level. Use qb-! or qb!- to hide the Cancel button.

    Note that the ! option is available with Windows Installer 2.0 and works only with basic UI. It is not valid with full UI.

    se uso "System.diagnostic.Process.Start("pacchetto.exe", "/q")" oppure "q" senza / :S

    • Contrassegnato come risposta gabry90 domenica 22 luglio 2012 18:15
    domenica 22 luglio 2012 13:22
  • E quale sarebbe la domanda?

    Marco Minerva [MCPD]
    Blog: http://blogs.ugidotnet.org/marcom
    Twitter: @marcominerva

    domenica 22 luglio 2012 13:24
    Moderatore
  • metto lo "/" oppure no? XD
    domenica 22 luglio 2012 13:32
  • Il carattere "/" fa parte della sintassi della riga di comando, quindi direi di sì.


    Marco Minerva [MCPD]
    Blog: http://blogs.ugidotnet.org/marcom
    Twitter: @marcominerva

    domenica 22 luglio 2012 13:45
    Moderatore
  • ecco, una domanda....se voglio impostare piu parametri metto lo spazio tra un paramtro e l'altro oppure no? nel senso così "/q /w" o così "/q/w"?

    e un ultima cosa....questi sono parametri standard per pacchetti MSI, se nel caso invece devo installare pacchetti non MSI, e quindi semplici exe o altro? ci sono altre specifiche?

    grazie

    domenica 22 luglio 2012 13:50
  • ecco, una domanda....se voglio impostare piu parametri metto lo spazio tra un paramtro e l'altro oppure no? nel senso così "/q /w" o così "/q/w"?

    Dipende da come è fatto il parser per i parametri della riga di comando. Solitamente si lasciano gli spazi, ma possono esserci parser che intepretano correttamente anche i parametri "non spaziati". Fai comunque una prova per fugare ogni dubbio.

    e un ultima cosa....questi sono parametri standard per pacchetti MSI, se nel caso invece devo installare pacchetti non MSI, e quindi semplici exe o altro? ci sono altre specifiche?

    Se sono eseguibili, quindi programmi standalone, ognuno può avere i suoi parametri. Non esistono specifiche universali.


    Marco Minerva [MCPD]
    Blog: http://blogs.ugidotnet.org/marcom
    Twitter: @marcominerva

    • Contrassegnato come risposta gabry90 domenica 22 luglio 2012 18:15
    domenica 22 luglio 2012 13:55
    Moderatore
  • perfetto...grazie...volevo solo sapere questo :)
    domenica 22 luglio 2012 18:15