Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 16162|Antwort: 2

[Neue Ausgabe] Es wird Probleme geben, das Installationspaket InstallShield im Silent Mode im Setup Project auszuführen

[Link kopieren]
Veröffentlicht am 28.08.2018 11:56:12 | | |
Hallo Götter,

Ich habe kürzlich Setup Project verwendet, um das Programm zu paketieren, und es heißt A.
Aufgrund von Projektanforderungen musste ich während der Installation von A ein Installationspaket B installieren, das von InstallShield gepackt wurde.
In diesem hier. AfterInstall und this.BeforeUninstall Parts fügen jeweils den Code "Install" und "Reverse Install" B hinzu.
Allerdings konnte sie nicht reibungslos ausgeführt werden, und die von B erzeugte setup.log erhielt ResultCode=-3, aber der Grund ist unbekannt...

Ich flehe den Gott des Vorstands um Hilfe an, dieses Problem beschäftigt meinen kleinen Bruder schon lange, und ich konnte es nicht lösen... Vielen Dank!!

Im folgenden Code wird der Code im InstallerHelper_AfterInstall und InstallerHelper_BeforeUninstall im neu erstellten C#-Konsolenprogramm eingefügt, aber es kann normal ausgeführt werden.
Und WaitforExit() kann ebenfalls flüssig hängen bleiben, und das B-Installationspaket kann ebenfalls reibungslos ausgeführt werden, ResultCode=0.

Der Code lautet wie folgt:
--
mit System;
unter Verwendung von System.Collections;
mit System.Collections.Generic;
mit System.ComponentModel;
mit System.Configuration.Install;
mit System.Linq;
unter Verwendung von System.Threading.Tasks;
unter Verwendung von System.Configuration;
mit System.Windows;
mit System.IO;
mit System.Diagnostics;
unter Verwendung von System.Threading;

Namensraum FRWebService
{
    [RunInstaller(true)]
    öffentliche partielle Klasse InstallerHelper : Installer
    {
        öffentlicher InstallerHelper()
        {

            InitializeComponent();

            das. BeforeInstall += neuer InstallEventHandler(InstallerHelper_BeforeInstall);
            das. AfterInstall += neuer InstallEventHandler(InstallerHelper_AfterInstall);

            das. BeforeUninstall += neuer InstallEventHandler(InstallerHelper_BeforeUninstall);
            das. AfterUninstall += neuer InstallEventHandler(InstallerHelper_AfterUninstall);
        }

        private void InstallerHelper_BeforeUninstall(Objektsender, InstallEventArgs e)
        {
            Versuch es
            {
                String arg = "/s /uninst";
                Process p = Process.Start("C:\\Program Files\\\Test\\\setup_io.exe", arg);
                p.WaitForInputIdle();
                p.Warten auf Ausgang();

            }
            catch (Ausnahme z. B.)
            {

            }
        }

        private void InstallerHelper_BeforeInstall(Objektsender, InstallEventArgs e)
        {

        }

        private void InstallerHelper_Committing(Objektsender, InstallEventArgs e)
        {

        }

        private void InstallerHelper_Committed(Objektsender, InstallEventArgs e)
        {

        }

        private void InstallerHelper_AfterInstall(object sender, InstallEventArgs e)
        {
            Versuch es
            {
                String arg = "/s";
                Process p = Process.Start("C:\\Program Files\\\Test\\\setup_io.exe", arg);
                p.WaitForInputIdle();
                p.Warten auf Ausgang();
            }
            catch (Ausnahme z. B.)
            {

            }
        }

        private void InstallerHelper_AfterUninstall(Objektsender, InstallEventArgs e)
        {


        }


        Code, der zum Zeitpunkt der Installation der Anwendung ausgeführt wird
        public override void Install(System.Collections.IDictionary stateSaver)
        {
            System.Diagnostik.Debugger.Start();
            Basis. Installieren(stateSaver);
            System.Windows.Forms.MessageBox.Show("Installation der Anwendung...");
        }

        public override void Uninstall(System.Collections.IDictionary stateSaver)
        {
            System.Diagnostik.Debugger.Start();
            Basis. Uninstallation (stateSaver);
            System.Windows.Forms.MessageBox.Show("Anwendung deinstallieren...");
        }

    }
}
--





Vorhergehend:Linq implementiert nicht in und in konditionalen Abfragen in SQL
Nächster:MySQL-Abfragetabellen, die zu einem bestimmten Zeitpunkt in einer Datenbank erstellt wurden
Veröffentlicht am 28.08.2018 13:02:49 |
Kannst du setup.log Protokolle einfügen? Oder die Installation als Administrator ausführen und es ausprobieren?
 Vermieter| Veröffentlicht am 28.08.2018 14:21:53 |
Dieser Beitrag wurde zuletzt von yishiang0217 am 09.03.2018 um 09:47 bearbeitet
Admin veröffentlicht am 28.8.2018, 13:02 Uhr
Kannst du setup.log Protokolle einfügen? Oder die Installation als Administrator ausführen und es ausprobieren?

Hallo Administratoren,

Schön, deine Antwort zu erhalten, hier sind die Antworten auf deine Fragen:

1.
Das ist alles, worum es setup.log geht @@
--
[AntwortErgebnis]
ResultCode=-3
--
Oder kann InstallShield mehr drucken?!

2.
Das Setup Project generiert zwei Dateien, eine ist MSI und die andere eine exe, ich habe versucht, die exe als Administrator auszuführen, aber ich konnte nicht...

P.S. Der Teil, der bisher erfolgreich war, ist... Führe das B-Installationspaket beim AfterInstall aus, aber benutze nicht WaitForExit, du kannst es reibungslos und lautlos installieren... Aber weil B installiert und verpackt ist, muss ich noch einige Operationen erledigen...
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com