Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 16162|Svar: 2

[Nytt nummer] Det kommer att uppstå problem med att köra installationspaketet InstallShield med Silent Mode inom Setup Project-projektet

[Kopiera länk]
Publicerad på 2018-08-28 11:56:12 | | |
Hej gudar,

Jag har nyligen använt Setup Project för att paketera programmet, och det heter A.
På grund av projektkrav var jag tvungen att installera ett installationspaket B som paketerats av InstallShield under installationen av A.
I detta. AfterInstall och this.BeforeUninstall parts lägger till koden för "Install" respektive "Reverse Install" B.
Den kunde dock inte utföras smidigt, och den setup.log som genererades av B gav ResultCode=-3, men orsaken är okänd...

Jag ber styrelsens gud om hjälp, det här problemet har plågat min lillebror länge, och jag har inte kunnat lösa det... Tack!!

I följande kod placeras koden i InstallerHelper_AfterInstall och InstallerHelper_BeforeUninstall i det nyskapade C#-konsolprogrammet, men det kan köras normalt.
Och WaitforExit() kan också fastna smidigt, och B-installationspaketet kan också köras smidigt, ResultCode=0.

Koden är följande:
--
med System;
med hjälp av System.Collections;
med System.Collections.Generic;
med System.ComponentModel;
med System.Configuration.Install;
med System.Linq;
använda System.Threading.Tasks;
med System.Configuration;
med System.Windows;
med hjälp av System.IO;
med System.Diagnostics;
med System.Threading;

namnrymden FRWebService
{
    [RunInstaller(true)]
    publik partiell klass InstallerHelper : Installer
    {
        publik InstallerHelper()
        {

            InitializeComponent();

            Exakt så. BeforeInstall += ny InstallEventHandler(InstallerHelper_BeforeInstall);
            Exakt så. AfterInstall += ny InstallEventHandler(InstallerHelper_AfterInstall);

            Exakt så. BeforeUninstall += ny InstallEventHandler(InstallerHelper_BeforeUninstall);
            Exakt så. AfterUninstall += ny InstallEventHandler(InstallerHelper_AfterUninstall);
        }

        privat void InstallerHelper_BeforeUninstall(objektavsändare, InstallEventArgs e)
        {
            Försök
            {
                Sträng arg = "/s /uninst";
                Process p = Process.Start("C:\\Program Files\\\Test\\setup_io.exe", arg);
                p.WaitForInputIdle();
                p.WaitForExit();

            }
            catch (Undantag t.ex.)
            {

            }
        }

        privat void InstallerHelper_BeforeInstall(objektavsändare, InstallEventArgs e)
        {

        }

        privat void InstallerHelper_Committing(objektavsändare, InstallEventArgs e)
        {

        }

        privat void InstallerHelper_Committed(objektavsändare, InstallEventArgs e)
        {

        }

        privat void InstallerHelper_AfterInstall(objektavsändare, InstallEventArgs e)
        {
            Försök
            {
                Sträng arg = "/s";
                Process p = Process.Start("C:\\Program Files\\\Test\\setup_io.exe", arg);
                p.WaitForInputIdle();
                p.WaitForExit();
            }
            catch (Undantag t.ex.)
            {

            }
        }

        privat void InstallerHelper_AfterUninstall(objektavsändare, InstallEventArgs e)
        {


        }


        Kod att utföra vid installationstillfället
        public override void Install(System.Collections.IDictionary stateSaver)
        {
            System.Diagnostik.Debugger.Start();
            basen. Installera (stateSaver);
            System.Windows.Forms.MessageBox.Show("Installera applikation...");
        }

        public override void Uninstall(System.Collections.IDictionary stateSaver)
        {
            System.Diagnostik.Debugger.Start();
            basen. Avinstallera (stateSaver);
            System.Windows.Forms.MessageBox.Show("Avinstallera applikation...");
        }

    }
}
--





Föregående:Linq implementerar inte i och i villkorsförfrågningar i SQL
Nästa:MySQL-frågetabeller byggda vid en viss tidpunkt i en databas
Publicerad på 2018-08-28 13:02:49 |
Kan du klistra in setup.log loggar? Eller köra installationen som administratör och prova?
 Hyresvärd| Publicerad på 2018-08-28 14:21:53 |
Detta inlägg redigerades senast av yishiang0217 den 2018-9-3 09:47
admin postade den 28-8-2018 13:02
Kan du klistra in setup.log loggar? Eller köra installationen som administratör och prova?

Hej administratörer,

Trevligt att få ditt svar, här är svaren på dina frågor:

1.
Det är allt setup.log handlar om @@
--
[SvarResultat]
ResultCode=-3
--
Eller kan InstallShield skriva ut mer?!

2.
Setup Project genererar två filer, en är msi och den andra är en exe, jag försökte köra exe som administratör, men jag kunde inte...

P.S. Den del som hittills har varit framgångsrik är... Kör installationspaketet B när du AfterInstall, men använd inte WaitForExit, du kan installera det smidigt och tyst... Men eftersom B är installerad och paketerad måste jag fortfarande göra några operationer...
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com