Visual Studio设置和部署:使用可选组件创建包?

时间:2009-02-23 03:40:29

标签: visual-studio-2008 installer setup-deployment

例如,我的应用程序支持Epson打印机和佳能打印机。

我想在安装过程中有一个选项,可能是单选按钮,或者更好的是,复选框(可以选择两者)可以说是“安装爱普生驱动程序”和“安装佳能驱动程序”。

然后,根据用户选择,安装程序包将仅安装Epson驱动程序,或仅安装Canon驱动程序,或两者都安装。

我想我想要的东西也可以被描述为有几个先决条件,但要使它们成为可选项。

有关从哪里开始的任何建议?

2 个答案:

答案 0 :(得分:2)

看起来我需要的东西无法通过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文件中读取设置文件位置等,但这不在问题的范围内......

答案 1 :(得分:0)

我认为您可以在Visual Studio部署项目中执行此操作,至少对于简单的情况(我认为最多4个复选框,但我可能错了)。请参阅此MSDN文章:Checkboxes User Interface Dialog Box;它解释了如何在安装过程中显示带有复选框的对话框,并根据复选框选择包含或排除文件。