Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 16162|Atbildi: 2

[Jauns izdevums] Radīsies problēmas, palaižot InstallShield instalācijas pakotni, izmantojot kluso režīmu uzstādīšanas projekta projektā

[Kopēt saiti]
Publicēts 28.08.2018 11:56:12 | | |
Sveiki dievi,

Es nesen izmantoju uzstādīšanas projektu, lai iepakotu programmu, un to sauc par A.
Projekta prasību dēļ A instalēšanas laikā man bija jāinstalē instalācijas pakotne B, ko iepakoja InstallShield.
Šajā. AfterInstall un this.BeforeAtinstalēt detaļas pievienojiet kodu "Instalēt" un "Reversā instalēšana" B attiecīgi.
Tomēr to nevarēja izpildīt vienmērīgi, un B ģenerētais setup.log ieguva ResultCode=-3, bet iemesls nav zināms...

Es lūdzu valdes dievu palīdzēt, šī problēma jau ilgu laiku ir satraucis manu mazo brāli, un es neesmu spējis to atrisināt... Paldies!!

Nākamajā kodā InstallerHelper_AfterInstall un InstallerHelper_BeforeUninstall kods tiek ievietots jaunizveidotajā C# konsoles programmā, bet tas var darboties normāli.
Un WaitforExit() var arī iestrēgt vienmērīgi, un B instalācijas pakotni var izpildīt arī nevainojami, ResultCode = 0.

Kods ir šāds:
--
izmantojot Sistēmu;
izmantojot System.Collections;
izmantojot System.Collections.Generic;
izmantojot System.ComponentModel;
izmantojot System.Configuration.Install;
izmantojot System.Linq;
izmantojot System.Threading.Tasks;
izmantojot System.Configuration;
izmantojot System.Windows;
izmantojot System.IO;
izmantojot System.Diagnostics;
izmantojot System.Threading;

nosaukumvieta FRWebService
{
    [RunInstaller(true)]
    publiskā daļējā klase InstallerHelper : Instalētājs
    {
        public InstallerHelper()
        {

            InitializeComponent();

            Šis. BeforeInstall += jauns InstallEventHandler(InstallerHelper_BeforeInstall);
            Šis. AfterInstall += jauns InstallEventHandler(InstallerHelper_AfterInstall);

            Šis. PirmsAtinstalēt += jaunu InstallEventHandler(InstallerHelper_BeforeUninstall);
            Šis. AfterUninstall += jauns InstallEventHandler(InstallerHelper_AfterUninstall);
        }

        private void InstallerHelper_BeforeUninstall(objekta sūtītājs, InstallEventArgs e)
        {
            izmēģināt
            {
                String arg = "/s /uninst";
                Process p = Process.Start("C:\\Program Files\\Test\\setup_io.exe", arg);
                p.WaitForInputIdle();
                p.WaitForExit();

            }
            nozveja (izņēmums, piemēram)
            {

            }
        }

        private void InstallerHelper_BeforeInstall(objekta sūtītājs, InstallEventArgs e)
        {

        }

        private void InstallerHelper_Committing(objekta sūtītājs, InstallEventArgs e)
        {

        }

        private void InstallerHelper_Committed(objekta sūtītājs, InstallEventArgs e)
        {

        }

        private void InstallerHelper_AfterInstall(objekta sūtītājs, InstallEventArgs e)
        {
            izmēģināt
            {
                Virkne arg = "/s";
                Process p = Process.Start("C:\\Program Files\\Test\\setup_io.exe", arg);
                p.WaitForInputIdle();
                p.WaitForExit();
            }
            nozveja (izņēmums, piemēram)
            {

            }
        }

        private void InstallerHelper_AfterUninstall(objekta sūtītājs, InstallEventArgs e)
        {


        }


        Kods, kas jāveic lietojumprogrammas instalēšanas laikā
        public override void Install(System.Collections.IDictionary stateSaver)
        {
            System.Diagnostics.Debugger.Launch();
            bāze. Instalēt(stateSaver);
            System.Windows.Forms.MessageBox.Show("Lietojumprogrammas instalēšana...");
        }

        public override void Uninstall(System.Collections.IDictionary stateSaver)
        {
            System.Diagnostics.Debugger.Launch();
            bāze. Atinstalēt (stateSaver);
            System.Windows.Forms.MessageBox.Show("Lietojumprogrammas atinstalēšana...");
        }

    }
}
--





Iepriekšējo:Linq ievieš SQL ne un nosacītos vaicājumos
Nākamo:MySQL vaicā tabulas, kas izveidotas noteiktā laikā datu bāzē
Publicēts 28.08.2018 13:02:49 |
Vai jūs varat ielīmēt setup.log žurnālus? Vai arī palaist instalāciju kā administrators un izmēģināt?
 Saimnieks| Publicēts 28.08.2018 14:21:53 |
Šo ziņu pēdējo reizi rediģēja yishiang0217 2018-9-3 09:47
admin Publicēts 2018-8-28 13:02
Vai jūs varat ielīmēt setup.log žurnālus? Vai arī palaist instalāciju kā administrators un izmēģināt?

Sveiki administratori,

Patīkami saņemt atbildi, šeit ir atbildes uz jūsu jautājumiem:

1.
Tas ir viss setup.log ir par @@
--
[Atbildes rezultāts]
Rezultāta kods=-3
--
Vai arī InstallShield var izdrukāt vairāk?!

2.
Setup Project ģenerēs divus failus, viens ir msi un otrs ir exe, es mēģināju palaist exe kā administrators, bet es nevarēju ...

P.S. Līdz šim veiksmīgā daļa ir... Palaidiet B instalācijas pakotni, kad AfterInstall, bet neizmantojiet WaitForExit, varat to instalēt vienmērīgi un klusi... Bet, tā kā B ir instalēts un iepakots, man joprojām ir jāveic dažas darbības ...
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com