Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 16162|Odpoveď: 2

[Nové číslo] Budú problémy pri spustení inštalačného balíka InstallShield v Silent Mode v projekte Setup Project

[Kopírovať odkaz]
Zverejnené 28. 8. 2018 11:56:12 | | |
Ahojte bohovia,

Nedávno som používal Setup Project na balenie programu a volá sa A.
Kvôli požiadavkám projektu som musel nainštalovať inštalačný balík B od InstallShield počas inštalácie A.
V tomto. AfterInstall a this.BeforeUninstall pridávajú kód "Install" a "Reverse Install" B.
Avšak nebolo možné ho vykonať plynulo a setup.log generovaný B získal ResultCode=-3, ale dôvod nie je známy...

Prosím boha predstavenstva, aby mi pomohol, tento problém trápi môjho mladšieho brata už dlho a ja som ho nedokázal vyriešiť... Ďakujem!!

V nasledujúcom kóde je kód v InstallerHelper_AfterInstall a InstallerHelper_BeforeUninstall umiestnený do novo vytvoreného C# konzolového programu, ale môže bežať normálne.
A WaitforExit() sa tiež môže zaseknúť plynulo a inštalačný balík B sa tiež dá spustiť plynulo, ResultCode=0.

Kód je nasledovný:
--
pomocou systému;
pomocou System.Collections;
používajúc System.Collections.Generic;
pomocou System.ComponentModel;
pomocou System.Configuration.Install;
pomocou System.Linq;
pomocou System.Threading.Tasks;
pomocou System.Configuration;
pomocou System.Windows;
použitím System.IO;
pomocou System.Diagnostics;
pomocou System.Threading;

menný priestor FRWebService
{
    [RunInstaller(true)]
    verejná čiastočná trieda InstallerHelper : Installer
    {
        public InstallerHelper()
        {

            InitializeComponent();

            Presne tak. BeforeInstall += nový InstallEventHandler(InstallerHelper_BeforeInstall);
            Presne tak. AfterInstall += nový InstallEventHandler(InstallerHelper_AfterInstall);

            Presne tak. BeforeUninstall += nový InstallEventHandler(InstallerHelper_BeforeUninstall);
            Presne tak. AfterUninstall += nový InstallEventHandler(InstallerHelper_AfterUninstall);
        }

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

            }
            chytiť (Výnimka 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)
        {
            Skús
            {
                Reťazec arg = "/s";
                Process p = Process.Start("C:\\Program Files\\Test\\setup_io.exe", arg);
                p.WaitForInputIdle();
                p.WaitForExit();
            }
            chytiť (Výnimka ex)
            {

            }
        }

        private void InstallerHelper_AfterUninstall(object sender, InstallEventArgs e)
        {


        }


        Kód na vykonanie v čase inštalácie aplikácie
        public override void Install(System.Collections.IDictionary stateSaver)
        {
            System.Diagnostics.Debugger.Launch();
            základný. Install(stateSaver);
            System.Windows.Forms.MessageBox.Show("Inštalácia aplikácie...");
        }

        public override void Uninstall(System.Collections.IDictionary stateSaver)
        {
            System.Diagnostics.Debugger.Launch();
            základný. Odinštalovať (stateSaver);
            System.Windows.Forms.MessageBox.Show("Odinštalovanie aplikácie...");
        }

    }
}
--





Predchádzajúci:Linq implementuje nie v a v podmienených dotazoch v SQL
Budúci:MySQL dotazuje tabuľky vytvorené v určitom čase v databáze
Zverejnené 28. 8. 2018 13:02:49 |
Môžeš vložiť setup.log logy? Alebo spustiť inštaláciu ako administrátor a skúsiť to?
 Prenajímateľ| Zverejnené 28. 8. 2018 14:21:53 |
Tento príspevok naposledy upravil yishiang0217 dňa 3.9.2018 o 09:47
admin zverejnené 28.8.2018 13:02
Môžeš vložiť setup.log logy? Alebo spustiť inštaláciu ako administrátor a skúsiť to?

Ahojte administrátori,

Rád prijímam vašu odpoveď, tu sú odpovede na vaše otázky:

1.
O tom setup.log je @@
--
[OdpoveďVýsledok]
ResultCode=-3
--
Alebo môže InstallShield vytlačiť viac?!

2.
Setup Project vygeneruje dva súbory, jeden je msi a druhý je exe, skúšal som spustiť exe ako administrátor, ale nepodarilo sa mi to...

P.S. Časť, ktorá bola zatiaľ úspešná, je... Spusti inštalačný balík B pri AfterInstall, ale nepoužívaj WaitForExit, môžeš ho nainštalovať plynulo a potichu... Ale keďže B je nainštalovaný a zabalený, musím ešte vykonať niektoré operácie...
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com