|
|
Publicēts 28.08.2018 11:56:12
|
|
|

Sveiki dievi,
Es nesen izmantoju uzstādīšanas projektu, lai iepakotu programmu, un to sauc par A. Projekta prasību dēļ A instalēšanas laikā man bija jāinstalē instalācijas pakotne B, ko iepakoja InstallShield. Šajā. AfterInstall un this.BeforeAtinstalēt detaļas pievienojiet kodu "Instalēt" un "Reversā instalēšana" B attiecīgi. Tomēr to nevarēja izpildīt vienmērīgi, un B ģenerētais setup.log ieguva ResultCode=-3, bet iemesls nav zināms...
Es lūdzu valdes dievu palīdzēt, šī problēma jau ilgu laiku ir satraucis manu mazo brāli, un es neesmu spējis to atrisināt... Paldies!!
Nākamajā kodā InstallerHelper_AfterInstall un InstallerHelper_BeforeUninstall kods tiek ievietots jaunizveidotajā C# konsoles programmā, bet tas var darboties normāli. Un WaitforExit() var arī iestrēgt vienmērīgi, un B instalācijas pakotni var izpildīt arī nevainojami, ResultCode = 0.
Kods ir šāds: -- izmantojot Sistēmu; izmantojot System.Collections; izmantojot System.Collections.Generic; izmantojot System.ComponentModel; izmantojot System.Configuration.Install; izmantojot System.Linq; izmantojot System.Threading.Tasks; izmantojot System.Configuration; izmantojot System.Windows; izmantojot System.IO; izmantojot System.Diagnostics; izmantojot System.Threading;
nosaukumvieta FRWebService
{ [RunInstaller(true)] publiskā daļējā klase InstallerHelper : Instalētājs { public InstallerHelper() {
InitializeComponent();
Šis. BeforeInstall += jauns InstallEventHandler(InstallerHelper_BeforeInstall); Šis. AfterInstall += jauns InstallEventHandler(InstallerHelper_AfterInstall);
Šis. PirmsAtinstalēt += jaunu InstallEventHandler(InstallerHelper_BeforeUninstall); Šis. AfterUninstall += jauns InstallEventHandler(InstallerHelper_AfterUninstall); }
private void InstallerHelper_BeforeUninstall(objekta sūtītājs, InstallEventArgs e) { izmēģināt { String arg = "/s /uninst"; Process p = Process.Start("C:\\Program Files\\Test\\setup_io.exe", arg); p.WaitForInputIdle(); p.WaitForExit();
} nozveja (izņēmums, piemēram) {
} }
private void InstallerHelper_BeforeInstall(objekta sūtītājs, InstallEventArgs e) {
}
private void InstallerHelper_Committing(objekta sūtītājs, InstallEventArgs e) {
}
private void InstallerHelper_Committed(objekta sūtītājs, InstallEventArgs e) {
}
private void InstallerHelper_AfterInstall(objekta sūtītājs, InstallEventArgs e) { izmēģināt { Virkne arg = "/s"; Process p = Process.Start("C:\\Program Files\\Test\\setup_io.exe", arg); p.WaitForInputIdle(); p.WaitForExit(); } nozveja (izņēmums, piemēram) {
} }
private void InstallerHelper_AfterUninstall(objekta sūtītājs, InstallEventArgs e) {
}
Kods, kas jāveic lietojumprogrammas instalēšanas laikā public override void Install(System.Collections.IDictionary stateSaver) { System.Diagnostics.Debugger.Launch(); bāze. Instalēt(stateSaver); System.Windows.Forms.MessageBox.Show("Lietojumprogrammas instalēšana..."); }
public override void Uninstall(System.Collections.IDictionary stateSaver) { System.Diagnostics.Debugger.Launch(); bāze. Atinstalēt (stateSaver); System.Windows.Forms.MessageBox.Show("Lietojumprogrammas atinstalēšana..."); }
}
} --
|
Iepriekšējo:Linq ievieš SQL ne un nosacītos vaicājumosNākamo:MySQL vaicā tabulas, kas izveidotas noteiktā laikā datu bāzē
|