如何从另一个安装程序运行一个安装程序
本文关键字:安装 程序 一个 运行 另一个 | 更新日期: 2023-09-27 18:14:53
我有一个3个模块的解决方案。Windows、Web和Windows Service。我想创建一个父安装程序,运行关于用户选择的三个子安装程序包。
我创建了一个安装项目,如下所示:- 我创建了一个包含InstallerHelper的库,它继承自
Installer
类 - 我添加了以下代码:
public override void Install(IDictionary stateSaver)
{
base.Install(stateSaver);
try
{
FileInfo fileInfo = new FileInfo(System.Reflection.Assembly.GetExecutingAssembly().Location);
string sProgram = Path.Combine(fileInfo.DirectoryName, "Setup1.msi");
Process p = Process.Start(sProgram);
p.WaitForExit();
}
catch (Exception exc)
{
Context.LogMessage(exc.ToString());
throw;
}
}
问题是windows安装程序拒绝运行多个windows安装程序实例并抛出以下错误:
另一个安装正在进行中。你必须完成这个
我的方法正确吗?是否有其他方法可以运行另一个安装程序,并且父安装程序应该等待所有这些安装程序,并单击Finish。
您可以使用Wix Burn创建包含多个应用程序安装程序的安装包(msi/exe):
- Wix Toolset: Building Installation Package Bundles
- Neil Sleightholm的Blog: WiX Burn - tips/tricks