Γεια σας θεοί,
Πρόσφατα χρησιμοποίησα το 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("Κατάργηση εγκατάστασης εφαρμογής..."); }
}
} --
|