Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 16162|Antwoord: 2

[Nieuw Nummer] Er zullen problemen zijn bij het uitvoeren van het InstallShield-installatiepakket met Silent Mode binnen het Setup Project-project

[Link kopiëren]
Geplaatst op 28-08-2018 11:56:12 | | |
Hallo goden,

Ik heb Setup Project de laatste tijd gebruikt om het programma te verpakken, en het heet A.
Vanwege projectvereisten moest ik tijdens de installatie van A een installatiepakket B installeren, verpakt door InstallShield.
In dit. AfterInstall en this.BeforeUninstall voegen onderdelen respectievelijk de code van "Installeren" en "Reverse Install" B toe.
Het kon echter niet soepel worden uitgevoerd, en de door B gegenereerde setup.log leverde ResultCode=-3 op, maar de reden is onbekend...

Ik smeek de raad van bestuur om hulp, dit probleem heeft mijn kleine broertje al lang beziggehouden, en ik heb het niet kunnen oplossen... Bedankt!!

In de volgende code wordt de code in de InstallerHelper_AfterInstall en InstallerHelper_BeforeUninstall geplaatst in het nieuw aangemaakte C#-consoleprogramma, maar het kan normaal draaien.
En WaitforExit() kan ook soepel vastlopen, en het installatiepakket B kan ook soepel worden uitgevoerd, ResultCode=0.

De code is als volgt:
--
met behulp van System;
met behulp van System.Collections;
met behulp van System.Collections.Generic;
gebruikmakend van System.ComponentModel;
met behulp van System.Configuration.Install;
met behulp van System.Linq;
gebruik van System.Threading.Tasks;
gebruikmakend van System.Configuration;
met behulp van System.Windows;
met System.IO;
gebruikmakend van System.Diagnostics;
gebruik van System.Threading;

naamruimte FRWebService
{
    [RunInstaller(true)]
    publieke partiële klasse InstallerHelper : Installer
    {
        publieke InstallerHelper()
        {

            InitializeComponent();

            dit. BeforeInstall += nieuwe InstallEventHandler(InstallerHelper_BeforeInstall);
            dit. AfterInstall += nieuwe InstallEventHandler(InstallerHelper_AfterInstall);

            dit. BeforeUninstall += nieuwe InstallEventHandler(InstallerHelper_BeforeUninstall);
            dit. AfterUninstall += nieuwe InstallEventHandler(InstallerHelper_AfterUninstall);
        }

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

            }
            vangen (Uitzondering bijv.)
            {

            }
        }

        private void InstallerHelper_BeforeInstall(object sender, InstallEventArgs e)
        {

        }

        private void InstallerHelper_Committing(object sender, InstallEventArgs e)
        {

        }

        private void InstallerHelper_Committed(object sender, InstallEventArgs e)
        {

        }

        private void InstallerHelper_AfterInstall(object sender, InstallEventArgs e)
        {
            Probeer het
            {
                String arg = "/s";
                Process p = Process.Start ("C:\\Program Files\\\Test\\\setup_io.exe", arg);
                p.WachtOpInputIdle();
                p.WachtOpUitlaat();
            }
            vangen (Uitzondering bijv.)
            {

            }
        }

        private void InstallerHelper_AfterUninstall(object sender, InstallEventArgs e)
        {


        }


        Code die op het moment van installeren van de applicatie moet worden uitgevoerd
        public override void Install(System.Collections.IDictionary stateSaver)
        {
            System.Diagnostics.Debugger.Launch();
            basis. Installeren (stateSaver);
            System.Windows.Forms.MessageBox.Show("Applicatie installeren...");
        }

        public override void Uninstall(System.Collections.IDictionary stateSaver)
        {
            System.Diagnostics.Debugger.Launch();
            basis. Uninstall(stateSaver);
            System.Windows.Forms.MessageBox.Show("Applicatie verwijderen...");
        }

    }
}
--





Vorig:Linq implementeert niet in en in conditionele queries in SQL
Volgend:MySQL-querytabellen die op een bepaald moment in een database zijn gebouwd
Geplaatst op 28-08-2018 13:02:49 |
Kun je setup.log logs plakken? Of de installatie als beheerder uitvoeren en het proberen?
 Huisbaas| Geplaatst op 28-08-2018 14:21:53 |
Dit bericht is voor het laatst bewerkt door yishiang0217 op 2018-9-3 09:47
Admin geplaatst op 28-8-2018 13:02
Kun je setup.log logs plakken? Of de installatie als beheerder uitvoeren en het proberen?

Hallo beheerders,

Fijn om je reactie te ontvangen, hier zijn de antwoorden op je vragen:

1.
Dat is alles waar setup.log om draait @@
--
[AntwoordResultaat]
ResultCode=-3
--
Of kan InstallShield er meer printen?!

2.
Het Setup Project genereert twee bestanden, één is MSI en de andere een exe, ik heb geprobeerd de exe als administrator te draaien, maar dat lukte niet...

P.S. Het deel dat tot nu toe succesvol is geweest is... Draai het B-installatiepakket tijdens AfterInstall, maar gebruik WaitForExit niet, je kunt het soepel en stil installeren... Maar omdat B geïnstalleerd en verpakt is, moet ik nog wat operaties uitvoeren...
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com