【问题标题】:Visual Studio setup and deployment: create package with optional components?Visual Studio 设置和部署:使用可选组件创建包?
【发布时间】:2009-02-23 03:40:29
【问题描述】:
比如说,我的应用程序支持 Epson 打印机和 Canon 打印机。
我希望在安装过程中有一个选项,可能是单选按钮,或者更好的是复选框(可以同时选择两者),上面写着“安装爱普生驱动程序”和“安装佳能驱动程序”。
然后,根据用户选择,安装包将仅安装 Epson 驱动程序,或仅安装 Canon 驱动程序,或两者兼而有之。
我想我想要的也可以描述为有几个先决条件,但让它们成为可选的。
关于从哪里开始有什么建议吗?
【问题讨论】:
标签:
visual-studio-2008
installation
setup-deployment
【解决方案1】:
看起来我需要的内容无法通过 VS 设置和部署完成,因为我正在尝试从 msi 运行 msi,这是不允许的。因此,作为一种解决方法,我必须创建一个带有几个复选框和类似这样的功能的小型“包装”Windows 窗体应用程序
private void InstallComponent(string filePath)
{
System.Diagnostics.Process installerProcess;
installerProcess = System.Diagnostics.Process.Start(filePath);
while (installerProcess.HasExited == false)
{
//indicate progress to user
Application.DoEvents();
System.Threading.Thread.Sleep(250);
}
}
和“安装”按钮,可以按照以下方式进行操作
private void buttonInstall_Click(object sender, EventArgs e)
{
if (checkBoxCanonDrivers.Checked)
{
InstallComponent("CanonSetup.exe");
}
if (checkBoxEpsonDrivers.Checked)
{
InstallComponent("EpsonSetup.exe");
}
// ............
InstallComponent("MyMainApplicationSetup.exe");
}
现在关闭以使此应用程序灵活,例如从 XML 文件中读取设置文件位置等,但这超出了问题的范围...