|
|
Postitatud 28.08.2018 11:56:12
|
|
|

Tere jumalad,
Olen hiljuti kasutanud Setup Projecti programmi pakendamiseks ja see kannab nime A. Projekti nõuete tõttu pidin paigaldama InstallShieldi poolt A paigalduse ajal paigalduspaketi B. Selles. AfterInstall ja see. BeforeUninstall osad lisavad vastavalt koodid "Install" ja "Reverse Install" B. Kuid seda ei õnnestunud sujuvalt käivitada ning B poolt genereeritud setup.log sai ResultCode=-3, kuid põhjus on teadmata...
Ma palun juhatusel jumalat appi, see probleem on mu väikest venda kaua vaevanud ja ma pole suutnud seda lahendada... Täname!!
Järgnevas koodis paigutatakse InstallerHelper_AfterInstall ja InstallerHelper_BeforeUninstall kood uude loodud C# konsooliprogrammi, kuid see võib töötada normaalselt. Ja WaitforExit() võib samuti sujuvalt kinni jääda ning B paigalduspakett saab samuti sujuvalt käivitada, ResultCode=0.
Kood on järgmine: -- kasutades süsteemi; kasutades System.Collections'i; kasutades System.Collections.Generic; kasutades System.ComponentModeli; kasutades System.Configuration.Install; kasutades System.Linq'i; kasutades System.Threading.Tasks; kasutades System.Configurationi; kasutades System.Windowsi; kasutades System.IO; kasutades System.Diagnostics; kasutades System.Threadingut;
nimeruum FRWebService
{ [RunInstaller(true)] public partial class InstallerHelper : Installer { public InstallerHelper() {
InitializeComponent();
See. BeforeInstall += uus InstallEventHandler(InstallerHelper_BeforeInstall); See. AfterInstall += uus InstallEventHandler(InstallerHelper_AfterInstall);
See. BeforeUninstall += new InstallEventHandler(InstallerHelper_BeforeUninstall); See. AfterUninstall += uus InstallEventHandler(InstallerHelper_AfterUninstall); }
private void InstallerHelper_BeforeUninstall(object sender, InstallEventArgs e) { proovi { String arg = "/s /uninst"; Protsess p = Protsess.Start("C:\\Program Files\\Test\\setup_io.exe", arg); p.WaitForInputIdle(); p.WaitForExit();
} catch (Exception 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) { proovi { String arg = "/s"; Protsess p = Protsess.Start("C:\\Program Files\\Test\\setup_io.exe", arg); p.WaitForInputIdle(); p.WaitForExit(); } catch (Exception ex) {
} }
private void InstallerHelper_AfterUninstall(object sender, InstallEventArgs e) {
}
Kood, mida tuleb teha rakenduse paigaldamise ajal public override void Install(System.Collections.IDictionary stateSaver) { System.Diagnostics.Debugger.Launch(); Baasi. Install(stateSaver); System.Windows.Forms.MessageBox.Show ("Rakenduse paigaldamine..."); }
public override void Uninstall(System.Collections.IDictionary stateSaver) { System.Diagnostics.Debugger.Launch(); Baasi. Desinstalli (stateSaver); System.Windows.Forms.MessageBox.Show ("Rakenduse eemaldamine..."); }
}
} --
|
Eelmine:Linq rakendab tingimuslikke päringuid SQL-is mitte sees ja seesJärgmine:MySQL pärib tabeliid, mis on loodud kindlal ajal andmebaasis
|