Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 16162|Απάντηση: 2

[Νέο τεύχος] Θα υπάρξουν προβλήματα κατά την εκτέλεση του πακέτου εγκατάστασης InstallShield χρησιμοποιώντας την αθόρυβη λειτουργία στο έργο Setup Project

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 28/8/2018 11:56:12 π.μ. | | |
Γεια σας θεοί,

Πρόσφατα χρησιμοποίησα το Setup Project για να συσκευάσω το πρόγραμμα και ονομάζεται A.
Λόγω των απαιτήσεων του έργου, έπρεπε να εγκαταστήσω ένα πακέτο εγκατάστασης Β συσκευασμένο από το InstallShield κατά την εγκατάσταση του A.
Σε αυτό. AfterInstall και αυτό.BeforeUninstall parts προσθέστε τον κωδικό "Εγκατάσταση" και "Αντίστροφη εγκατάσταση" B αντίστοιχα.
Ωστόσο, δεν μπορούσε να εκτελεστεί ομαλά και το setup.log που δημιουργήθηκε από το B έλαβε ResultCode=-3, αλλά ο λόγος είναι άγνωστος...

Παρακαλώ τον θεό του διοικητικού συμβουλίου να βοηθήσει, αυτό το πρόβλημα ταλαιπωρεί τον μικρό μου αδερφό εδώ και πολύ καιρό και δεν κατάφερα να το λύσω... Ευχαριστώ!!

Στον παρακάτω κώδικα, ο κώδικας στο InstallerHelper_AfterInstall και InstallerHelper_BeforeUninstall τοποθετείται στο πρόγραμμα κονσόλας C# που δημιουργήθηκε πρόσφατα, αλλά μπορεί να εκτελεστεί κανονικά.
Και το WaitforExit() μπορεί επίσης να κολλήσει ομαλά και το πακέτο εγκατάστασης B μπορεί επίσης να εκτελεστεί ομαλά, ResultCode=0.

Ο κωδικός έχει ως εξής:
--
χρησιμοποιώντας το Σύστημα.
χρησιμοποιώντας το System.Collections.
χρησιμοποιώντας το System.Collections.Generic.
χρησιμοποιώντας το System.ComponentModel.
χρησιμοποιώντας το System.Configuration.Install.
χρησιμοποιώντας το System.Linq.
χρησιμοποιώντας το System.Threading.Tasks.
χρησιμοποιώντας το System.Configuration.
χρησιμοποιώντας το System.Windows.
χρησιμοποιώντας System.IO?
χρησιμοποιώντας το System.Diagnostics.
χρησιμοποιώντας το System.Threading.

χώρος ονομάτων FRWebService
{
    [RunInstaller(true)]
    δημόσια μερική κλάση InstallerHelper : Installer
    {
        public InstallerHelper()
        {

            InitializeComponent();

            αυτό. BeforeInstall += νέο InstallEventHandler(InstallerHelper_BeforeInstall);
            αυτό. AfterInstall += νέο InstallEventHandler(InstallerHelper_AfterInstall);

            αυτό. BeforeUninstall += νέο InstallEventHandler(InstallerHelper_BeforeUninstall);
            αυτό. AfterUninstall += νέο InstallEventHandler(InstallerHelper_AfterUninstall);
        }

        private void InstallerHelper_BeforeUninstall(object sender, InstallEventArgs e)
        {
            Δοκιμάστε
            {
                Συμβολοσειρά arg = "/s /uninst";
                Διαδικασία p = Process.Start("C:\\Program Files\\Test\\setup_io.exe", arg);
                p.WaitForInputIdle();
                p.WaitForExit();

            }
            αλιεύματα (Εξαίρεση π.χ.)
            {

            }
        }

        private void InstallerHelper_BeforeInstall(αποστολέας αντικειμένου, 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)
        {
            Δοκιμάστε
            {
                Συμβολοσειρά arg = "/s";
                Διαδικασία p = Process.Start("C:\\Program Files\\Test\\setup_io.exe", arg);
                p.WaitForInputIdle();
                p.WaitForExit();
            }
            αλιεύματα (Εξαίρεση π.χ.)
            {

            }
        }

        private void InstallerHelper_AfterUninstall(object sender, InstallEventArgs e)
        {


        }


        Κώδικας για εκτέλεση κατά την εγκατάσταση της εφαρμογής
        δημόσια παράκαμψη void Install(System.Collections.IDictionary stateSaver)
        {
            System.Diagnostics.Debugger.Launch();
            βάση. Εγκατάσταση(stateSaver);
            System.Windows.Forms.MessageBox.Show("Εγκατάσταση εφαρμογής...");
        }

        δημόσια παράκαμψη void Uninstall(System.Collections.IDictionary stateSaver)
        {
            System.Diagnostics.Debugger.Launch();
            βάση. Απεγκατάσταση(stateSaver);
            System.Windows.Forms.MessageBox.Show("Κατάργηση εγκατάστασης εφαρμογής...");
        }

    }
}
--





Προηγούμενος:Το Linq υλοποιεί μη μέσα και σε ερωτήματα υπό όρους στην SQL
Επόμενος:Πίνακες ερωτημάτων MySQL που έχουν δημιουργηθεί σε μια συγκεκριμένη χρονική στιγμή σε μια βάση δεδομένων
Δημοσιεύτηκε στις 28/8/2018 1:02:49 μ.μ. |
Μπορείτε να επικολλήσετε αρχεία καταγραφής setup.log; Ή να εκτελέσετε την εγκατάσταση ως διαχειριστής και να τη δοκιμάσετε;
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 28/8/2018 2:21:53 μ.μ. |
Αυτή η ανάρτηση επεξεργάστηκε τελευταία φορά από yishiang0217 στις 2018-9-3 09:47
admin δημοσιεύτηκε στις 2018-8-28 13:02
Μπορείτε να επικολλήσετε αρχεία καταγραφής setup.log; Ή να εκτελέσετε την εγκατάσταση ως διαχειριστής και να τη δοκιμάσετε;

Γεια σας διαχειριστές,

Χαίρομαι που έλαβα την απάντησή σας, εδώ είναι οι απαντήσεις στις ερωτήσεις σας:

1.
Αυτό είναι το μόνο setup.log @@
--
[ΑποτέλεσμαΑπόκρισης]
Κωδικός αποτελέσματος=-3
--
Ή μπορεί το InstallShield να εκτυπώσει περισσότερα;!

2.
Το Setup Project θα δημιουργήσει δύο αρχεία, το ένα είναι msi και το άλλο είναι exe, προσπάθησα να εκτελέσω το exe ως διαχειριστής, αλλά δεν μπορούσα...

Υ.Γ. Το κομμάτι που έχει πετύχει μέχρι στιγμής είναι... Εκτελέστε το πακέτο εγκατάστασης B όταν το AfterInstall, αλλά μην χρησιμοποιείτε το WaitForExit, μπορείτε να το εγκαταστήσετε ομαλά και αθόρυβα... Αλλά επειδή το B είναι εγκατεστημένο και συσκευασμένο, πρέπει ακόμα να κάνω κάποιες λειτουργίες...
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com