【问题标题】: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 文件中读取设置文件位置等,但这超出了问题的范围...

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多