|
|
Objavljeno na 28. 08. 2018 11:56:12
|
|
|

Pozdravljeni bogovi,
V zadnjem času uporabljam Setup Project za pakiranje programa, ki se imenuje A. Zaradi zahtev projekta sem moral med namestitvijo A namestiti namestitveni paket B, ki ga je zapakiral InstallShield. V tem. AfterInstall in this.BeforeUninstall dodajata kodo "Install" in "Reverse Install" B. Vendar ga ni bilo mogoče izvesti gladko, in setup.log, ki ga je generiral B, je dobil ResultCode=-3, vendar razlog ni znan...
Prosim boga odbora za pomoč, ta problem že dolgo muči mojega mlajšega brata in ga nisem uspel rešiti... Hvala!!
V naslednji kodi je koda v InstallerHelper_AfterInstall in InstallerHelper_BeforeUninstall nameščena v novo ustvarjeni C# konzolni program, vendar lahko deluje normalno. WaitforExit() se lahko tudi gladko zatakne, prav tako pa se lahko namestitveni paket B zažene gladko, ResultCode=0.
Koda je naslednja: -- z uporabo System; uporaba System.Collections; z uporabo System.Collections.Generic; z uporabo System.ComponentModel; uporaba System.Configuration.Install; z uporabo System.Linq; uporaba System.Threading.Tasks; z uporabo System.Configuration; uporaba System.Windows; z uporabo System.IO; uporaba System.Diagnostics; uporaba System.Threading;
imenski prostor FRWebService
{ [RunInstaller(true)] javni delni razred InstallerHelper : Installer { javni InstallerHelper() {
InitializeComponent();
to. BeforeInstall += novi InstallEventHandler(InstallerHelper_BeforeInstall); to. AfterInstall += novi InstallEventHandler(InstallerHelper_AfterInstall);
to. BeforeUninstall += novi InstallEventHandler(InstallerHelper_BeforeUninstall); to. AfterUninstall += novi InstallEventHandler(InstallerHelper_AfterUninstall); }
private void InstallerHelper_BeforeUninstall(object sender, InstallEventArgs e) { poskusi { Niz arg = "/s /uninst"; Process p = Process.Start("C:\\Program Files\\Test\\setup_io.exe", arg); p.WaitForInputIdle(); p.WaitForExit();
} ulov (Izjema 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) { poskusi { Struna arg = "/s"; Process p = Process.Start("C:\\Program Files\\Test\\setup_io.exe", arg); p.WaitForInputIdle(); p.WaitForExit(); } ulov (Izjema ex) {
} }
private void InstallerHelper_AfterUninstall(object sender, InstallEventArgs e) {
}
Koda za izvedbo ob namestitvi aplikacije public override void Install(System.Collections.IDictionary stateSaver) { System.Diagnostics.Debugger.Launch(); Baza. Install(stateSaver); System.Windows.Forms.MessageBox.Show("Namestitev aplikacije..."); }
public override void Uninstall(System.Collections.IDictionary stateSaver) { System.Diagnostics.Debugger.Launch(); Baza. Uninstall (stateSaver); System.Windows.Forms.MessageBox.Show("Odstranjevanje aplikacije..."); }
}
} --
|
Prejšnji:Linq implementira ne v in v pogojnih poizvedbah v SQLNaslednji:MySQL poizvedbe, zgrajene v določenem času v podatkovni bazi
|