安装自定义程序,无需用户交互

时间:2011-08-11 10:33:22

标签: c# .net

我想创建一个程序,可以安装用户选择的程序(用户从磁盘中选择安装程序)。我知道如何使用Process类运行可执行文件。 但是如何在没有用户交互的情况下安装程序(静默安装)?

2 个答案:

答案 0 :(得分:1)

您计划运行的安装程序需要支持静默安装。如果他们不这样做,你将会遇到困难时间

幸运的是,大多数安装程序允许与MSI相同的命令行参数。尝试以programName_installer.exe /?运行安装程序,看看它是否为您提供了帮助弹出窗口。

Here是MSI命令行选项的列表。 \qn会删除所有用户界面的互动。

此外,当您运行流程时,您需要进行这些设置以确保用户不会看到控制台弹出窗口:

            ProcessStartInfo info = new ProcessStartInfo("programName_installer.exe", @"\qn");
            info.CreateNoWindow = true;
            info.WindowStyle = ProcessWindowStyle.Hidden;
            info.UseShellExecute = false;
            info.RedirectStandardError = 
                info.RedirectStandardOutput = true;

            using (Process process = Process.Start(info))
            {
                process.WaitForExit();

                string output = process.StandardOutput.ReadToEnd();

                string error = process.StandardError.ReadToEnd();

                int exitCode = process.ExitCode;
            }

答案 1 :(得分:0)

算了。如果您允许任何安装程序,则无法保证静默安装。

但是,如果您知道安装程序是Installshield安装程序或Windows安装程序,则可以使用适当的设置覆盖某种配置文件以强制进行静默安装。