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..."); }
}
} --
|