Sziasztok, istenek,
Mostanában a Setup Project programot használom a program csomagolásához, és a neve A. A projekt követelményei miatt az A telepítése során telepítenem kellett egy InstallShield által csomagolt B telepítési csomagot. Ebben is. Az AfterInstall és ez.BeforeUninstall részek adják hozzá a "Install" és "Reverse Install" B kódot. Azonban nem volt zökkenőmentesen végrehajtható, és a B által generált setup.log ResultCode=-3 értéket kapott, de ennek oka ismeretlen...
Könyörgöm a tanács istenének, hogy segítsen, ez a probléma már régóta aggasztja a kisöcsémet, és én nem tudtam megoldani... Köszönöm!!
A következő kódban a InstallerHelper_AfterInstall és InstallerHelper_BeforeUninstall kódja az újonnan létrehozott C# konzolprogramba kerül, de az normálisan is fut. A WaitforExit() is simán beragadhat, és a B telepítési csomag is zökkenőmentesen futtatható, ResultCode=0.
A kódex a következő: -- System használatával; a System.Collections használatával; System.Collections.Generic használatával; a System.ComponentModel használatával; System.Configuration.Install használatával; a System.Linq használatával; System.Threading.Tasks használatával; a System.Configuration használatával; System.Windows használatával; System.IO használatával; System.Diagnostics használatával; a System.Threading használatával;
névtér FRWebService
{ [RunInstaller(true)] public partial class InstallerHelper : Installer { public installerHelper() {
InitializeComponent();
ez. BeforeInstall += new InstallEventHandler(InstallerHelper_BeforeInstall); ez. AfterInstall += új InstallEventHandler(InstallerHelper_AfterInstall);
ez. BeforeUninstall += new InstallEventHandler(InstallerHelper_BeforeUninstall); ez. AfterUninstall += új InstallEventHandler(InstallerHelper_AfterUninstall); }
private void InstallerHelper_BeforeUninstall(object sender, InstallEventArgs e) { próbáld ki { String arg = "/s /uninst"; Process p = Process.Start("C:\\Program Files\\Test\\setup_io.exe", arg); p.WaitForInputIdle(); p.WaitForExit();
} catch (kivétel 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) { próbáld ki { String arg = "/s"; Process p = Process.Start("C:\\Program Files\\Test\\setup_io.exe", arg); p.WaitForInputIdle(); p.WaitForExit(); } catch (kivétel ex) {
} }
private void InstallerHelper_AfterUninstall(object sender, InstallEventArgs e) {
}
a kód, amit az alkalmazás telepítésekor kell végrehajtani public override void Install(System.Collections.IDictionary stateSaver) { System.Diagnostics.Debugger.Launch(); bázis. Install(stateSaver); System.Windows.Forms.MessageBox.Show ("Alkalmazás telepítése..."); }
public override void Uninstall(System.Collections.IDictionary stateSaver) { System.Diagnostics.Debugger.Launch(); bázis. Uninstall(stateSaver); System.Windows.Forms.MessageBox.Show("Alkalmazás eltávolítása..."); }
}
} --
|