Halo dewa,
Saya telah menggunakan Setup Project untuk mengemas program baru-baru ini, dan itu disebut A. Karena persyaratan proyek, saya harus menginstal paket instalasi B yang dikemas oleh InstallShield selama penginstalan A. Dalam hal ini. AfterInstall dan this.BeforeUninstall masing-masing menambahkan kode "Install" dan "Reverse Install" B. Namun, itu tidak dapat dieksekusi dengan lancar, dan setup.log yang dihasilkan oleh B memperoleh ResultCode=-3, tetapi alasannya tidak diketahui...
Saya mohon kepada dewa dewan untuk membantu, masalah ini telah mengganggu adik laki-laki saya untuk waktu yang lama, dan saya belum dapat menyelesaikannya ... Terima kasih!!
Dalam kode berikut, kode di InstallerHelper_AfterInstall dan InstallerHelper_BeforeUninstall ditempatkan dalam program konsol C# yang baru dibuat, tetapi dapat berjalan secara normal. Dan WaitforExit() juga bisa macet dengan lancar, dan paket instalasi B juga dapat dijalankan dengan lancar, ResultCode=0.
Kodenya adalah sebagai berikut: -- menggunakan Sistem; menggunakan System.Collections; menggunakan System.Collections.Generic; menggunakan System.ComponentModel; menggunakan System.Configuration.Install; menggunakan System.Linq; menggunakan System.Threading.Tasks; menggunakan System.Configuration; menggunakan System.Windows; menggunakan System.IO; menggunakan System.Diagnostics; menggunakan System.Threading;
namespace FRWebService
{ [RunInstaller(true)] public partial class InstallerHelper : Installer { publik InstallerHelper() {
InisialisasiKomponen();
ini. BeforeInstall += InstallEventHandler(InstallerHelper_BeforeInstall) baru; ini. AfterInstall += InstallEventHandler(InstallerHelper_AfterInstall) baru;
ini. SebelumHapus instalan += InstallEventHandler(InstallerHelper_BeforeUninstall) baru; ini. AfterUninstall += InstallEventHandler(InstallerHelper_AfterUninstall baru); }
void pribadi InstallerHelper_BeforeUninstall(pengirim objek, InstallEventArgs e) { Coba { String arg = "/s /uninst"; Proses p = Proses.Mulai("C:\\Program Files\\Test\\setup_io.exe", arg); p.WaitForInputIdle(); p.WaitForExit();
} tangkap (Pengecualian mis) {
} }
void pribadi InstallerHelper_BeforeInstall(pengirim objek, InstallEventArgs e) {
}
void pribadi InstallerHelper_Committing(pengirim objek, InstallEventArgs e) {
}
void pribadi InstallerHelper_Committed(pengirim objek, InstallEventArgs e) {
}
void pribadi InstallerHelper_AfterInstall(pengirim objek, InstallEventArgs e) { Coba { String arg = "/s"; Proses p = Proses.Mulai("C:\\Program Files\\Test\\setup_io.exe", arg); p.WaitForInputIdle(); p.WaitForExit(); } tangkap (Pengecualian mis) {
} }
void pribadi InstallerHelper_AfterUninstall(pengirim objek, InstallEventArgs e) {
}
Kode yang harus dilakukan pada saat menginstal aplikasi penggantian publik void Install(System.Collections.IDictionary stateSaver) { System.Diagnostics.Debugger.Launch(); pangkalan. Instal (StateSaver); System.Windows.Forms.MessageBox.Show("Menginstal Aplikasi..."); }
penggantian publik void Uninstall(System.Collections.IDictionary stateSaver) { System.Diagnostics.Debugger.Launch(); pangkalan. Uninstall(stateSaver); System.Windows.Forms.MessageBox.Show("Menghapus Aplikasi..."); }
}
} --
|