我想创建一个程序,可以安装用户选择的程序(用户从磁盘中选择安装程序)。我知道如何使用Process类运行可执行文件。 但是如何在没有用户交互的情况下安装程序(静默安装)?
答案 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安装程序,则可以使用适当的设置覆盖某种配置文件以强制进行静默安装。