Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 16162|Risposta: 2

[Nuovo numero] Ci saranno problemi nell'eseguire il pacchetto di installazione InstallShield usando la modalità silenziosa all'interno del progetto Setup Project

[Copiato link]
Pubblicato su 28/08/2018 11:56:12 | | |
Ciao dei,

Ultimamente ho usato Setup Project per impacchettare il programma, e si chiama A.
A causa dei requisiti del progetto, ho dovuto installare un pacchetto di installazione B confezionato da InstallShield durante l'installazione di A.
In questo. AfterInstall e questo. Le parti BeforeUninstall aggiungono rispettivamente il codice "Installa" e "Installazione inversa" B.
Tuttavia, non è stato eseguito senza intoppi e il setup.log generato da B ha ottenuto ResultCode=-3, ma la ragione è sconosciuta...

Supplico il dio del consiglio di aiutarmi, questo problema ha turbato mio fratellino da molto tempo, e non sono riuscito a risolverlo... Grazie!!

Nel codice seguente, il codice nel InstallerHelper_AfterInstall e InstallerHelper_BeforeUninstall viene inserito nel nuovo programma console C# creato, ma può funzionare normalmente.
E anche WaitforExit() può bloccarsi senza problemi, e anche il pacchetto di installazione B può essere eseguito senza problemi, ResultCode=0.

Il codice è il seguente:
--
usando Sistema;
usando System.Collections;
usando System.Collections.Generic;
utilizzando System.ComponentModel;
usando System.Configuration.Install;
usando System.Linq;
usando System.Threading.Tasks;
usando System.Configuration;
usando System.Windows;
usando System.IO;
utilizzando System.Diagnostics;
usando System.Threading;

Spazio dei nomi FRWebService
{
    [RunInstaller(true)]
    classe parziale pubblica InstallerHelper : Installer
    {
        InstallerHelper pubblico()
        {

            InitializeComponent();

            Questo. PrimaInstallare += nuovo InstallEventHandler(InstallerHelper_BeforeInstall);
            Questo. AfterInstall += nuovo InstallEventHandler(InstallerHelper_AfterInstall);

            Questo. PrimaDeUninstall += nuovo InstallEventHandler(InstallerHelper_BeforeUninstall);
            Questo. AfterUninstall += nuovo InstallEventHandler(InstallerHelper_AfterUninstall);
        }

        private void InstallerHelper_BeforeUninstall(object sender, InstallEventArgs e)
        {
            prova
            {
                String arg = "/s /uninst";
                Process p = Process.Start("C:\\Program Files\\Test\\setup_io.exe", arg);
                p.AspettaProInputIdle();
                p.AspettaUscita();

            }
            catch (eccezione ex)
            {

            }
        }

        private void InstallerHelper_BeforeInstall(object sender, InstallEventArgs e)
        {

        }

        private void InstallerHelper_Committing(object sender, InstallEventArgs e)
        {

        }

        void privato InstallerHelper_Committed(object sender, InstallEventArgs e)
        {

        }

        void privato InstallerHelper_AfterInstall(object sender, InstallEventArgs e)
        {
            prova
            {
                String arg = "/s";
                Process p = Process.Start("C:\\Program Files\\Test\\setup_io.exe", arg);
                p.AspettaProInputIdle();
                p.AspettaUscita();
            }
            catch (eccezione ex)
            {

            }
        }

        privato void InstallerHelper_AfterUninstall(object sender, InstallEventArgs e)
        {


        }


        Codice da eseguire al momento dell'installazione dell'applicazione
        sovrascrittura pubblica void Install(System.Collections.IDictionary stateSaver)
        {
            System.Diagnostics.Debugger.Launch();
            base. Install(stateSaver);
            System.Windows.Forms.MessageBox.Show("Installazione applicazione...");
        }

        override pubblico void Uninstall(System.Collections.IDictionary stateSaver)
        {
            System.Diagnostics.Debugger.Launch();
            base. Disinstalla (stateSaver);
            System.Windows.Forms.MessageBox.Show("Disinstallazione dell'applicazione...");
        }

    }
}
--





Precedente:Linq implementa query condizionali non in e in SQL
Prossimo:MySQL Query Tabelle costruite in un determinato momento in un database
Pubblicato su 28/08/2018 13:02:49 |
Puoi incollare setup.log log? Oppure gestire l'installazione come amministratore e provarci?
 Padrone di casa| Pubblicato su 28/08/2018 14:21:53 |
Questo post è stato modificato l'ultima volta da yishiang0217 il 2018-9-3 09:47
admin pubblicato il 28-08-2018 alle 13:02
Puoi incollare setup.log log? Oppure gestire l'installazione come amministratore e provarci?

Ciao amministratori,

È stato un piacere ricevere la tua risposta, ecco le risposte alle tue domande:

1.
È tutto setup.log @@
--
[Risultato della Risposta]
ResultCode=-3
--
Oppure InstallShield può stamparne di più?!

2.
Setup Project genera due file, uno è msi e l'altro un exe, ho provato a eseguire l'exe come amministratore, ma non ci sono riuscito...

P.S. La parte che finora ha avuto successo è... Esegui il pacchetto di installazione B quando usi AfterInstall, ma non usare WaitForExit, puoi installarlo in modo fluido e silenzioso... Ma siccome B è installato e confezionato, devo ancora fare alcune operazioni...
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com