Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 16162|Odgovoriti: 2

[Nova številka] Težave bodo pri zagonu namestitvenega paketa InstallShield v tihem načinu znotraj projekta Setup Project

[Kopiraj povezavo]
Objavljeno na 28. 08. 2018 11:56:12 | | |
Pozdravljeni bogovi,

V zadnjem času uporabljam Setup Project za pakiranje programa, ki se imenuje A.
Zaradi zahtev projekta sem moral med namestitvijo A namestiti namestitveni paket B, ki ga je zapakiral InstallShield.
V tem. AfterInstall in this.BeforeUninstall dodajata kodo "Install" in "Reverse Install" B.
Vendar ga ni bilo mogoče izvesti gladko, in setup.log, ki ga je generiral B, je dobil ResultCode=-3, vendar razlog ni znan...

Prosim boga odbora za pomoč, ta problem že dolgo muči mojega mlajšega brata in ga nisem uspel rešiti... Hvala!!

V naslednji kodi je koda v InstallerHelper_AfterInstall in InstallerHelper_BeforeUninstall nameščena v novo ustvarjeni C# konzolni program, vendar lahko deluje normalno.
WaitforExit() se lahko tudi gladko zatakne, prav tako pa se lahko namestitveni paket B zažene gladko, ResultCode=0.

Koda je naslednja:
--
z uporabo System;
uporaba System.Collections;
z uporabo System.Collections.Generic;
z uporabo System.ComponentModel;
uporaba System.Configuration.Install;
z uporabo System.Linq;
uporaba System.Threading.Tasks;
z uporabo System.Configuration;
uporaba System.Windows;
z uporabo System.IO;
uporaba System.Diagnostics;
uporaba System.Threading;

imenski prostor FRWebService
{
    [RunInstaller(true)]
    javni delni razred InstallerHelper : Installer
    {
        javni InstallerHelper()
        {

            InitializeComponent();

            to. BeforeInstall += novi InstallEventHandler(InstallerHelper_BeforeInstall);
            to. AfterInstall += novi InstallEventHandler(InstallerHelper_AfterInstall);

            to. BeforeUninstall += novi InstallEventHandler(InstallerHelper_BeforeUninstall);
            to. AfterUninstall += novi InstallEventHandler(InstallerHelper_AfterUninstall);
        }

        private void InstallerHelper_BeforeUninstall(object sender, InstallEventArgs e)
        {
            poskusi
            {
                Niz arg = "/s /uninst";
                Process p = Process.Start("C:\\Program Files\\Test\\setup_io.exe", arg);
                p.WaitForInputIdle();
                p.WaitForExit();

            }
            ulov (Izjema ex)
            {

            }
        }

        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)
        {
            poskusi
            {
                Struna arg = "/s";
                Process p = Process.Start("C:\\Program Files\\Test\\setup_io.exe", arg);
                p.WaitForInputIdle();
                p.WaitForExit();
            }
            ulov (Izjema ex)
            {

            }
        }

        private void InstallerHelper_AfterUninstall(object sender, InstallEventArgs e)
        {


        }


        Koda za izvedbo ob namestitvi aplikacije
        public override void Install(System.Collections.IDictionary stateSaver)
        {
            System.Diagnostics.Debugger.Launch();
            Baza. Install(stateSaver);
            System.Windows.Forms.MessageBox.Show("Namestitev aplikacije...");
        }

        public override void Uninstall(System.Collections.IDictionary stateSaver)
        {
            System.Diagnostics.Debugger.Launch();
            Baza. Uninstall (stateSaver);
            System.Windows.Forms.MessageBox.Show("Odstranjevanje aplikacije...");
        }

    }
}
--





Prejšnji:Linq implementira ne v in v pogojnih poizvedbah v SQL
Naslednji:MySQL poizvedbe, zgrajene v določenem času v podatkovni bazi
Objavljeno na 28. 08. 2018 13:02:49 |
Ali lahko prilepiš setup.log dnevnike? Ali pa zaženem namestitev kot administrator in poskusim?
 Najemodajalec| Objavljeno na 28. 08. 2018 14:21:53 |
Ta objava je bila nazadnje urejena s strani yishiang0217 dne 3. 9. 2018 ob 09:47
Admin objavljeno 28. 8. 2018 ob 13:02
Ali lahko prilepiš setup.log dnevnike? Ali pa zaženem namestitev kot administrator in poskusim?

Pozdravljeni, administratorji,

Lepo je prejeti vaš odgovor, tukaj so odgovori na vaša vprašanja:

1.
To je vse setup.log o čemer govori @@
--
[RezultatOdgovor]
ResultCode=-3
--
Ali lahko InstallShield natisne več?!

2.
Setup Project bo ustvaril dve datoteki, ena je msi in druga je exe, poskušal sem zagnati exe kot skrbnik, a nisem mogel...

P.S. Del, ki je bil do zdaj uspešen, je... Zaženi namestitveni paket B ob AfterInstall, vendar ne uporabljaj WaitForExit, lahko ga namestiš gladko in tiho... Ker pa je B nameščen in zapakiran, moram še vedno opraviti nekaj operacij...
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com