如何在C#中运行静默安装程序

我有以下C#代码:

string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); Process.Start("cmd.exe", "/c" + desktopPath + "\\" + "MyInstaller_7.1.51.14.exe –s –v –qn"); 

第一行获取.exe所在桌面的路径。 字符串desktopPath用于第二行。

第二行应该以静默方式启动安装程序,以便进程在后台运行,安装向导根本不显示。 在命令提示符下运行desktopPath + "\\" + "MyInstaller_7.1.51.14.exe –s –v –qn"的字符串结果工作正常,安装程序以静默方式运行。 万一有人想知道,字符串的结果

desktopPath + "\\" + "MyInstaller_7.1.51.14.exe –s –v –qn"

C:\Users\ME\Desktop\MyInstaller_7.1.51.14.exe -s -v -qn

并在命令提示符下运行此命令以静默方式运行安装。

不幸的是,在C#代码中触发相同的命令:

 Process.Start("cmd.exe", "/c" + desktopPath + "\\" + "MyInstaller_7.1.51.14.exe –s –v –qn"); 

不以静默方式运行安装程序。 相反,向导出现,对用户可见。

有谁知道我怎么能修改这个:

 string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); Process.Start("cmd.exe", "/c" + desktopPath + "\\" + "MyInstaller_7.1.51.14.exe –s –v –qn"); 

以便安装程序实际上以静默模式运行,而不显示安装程序UI?

侧面注意:-s -v -qn是用于以静默模式运行的开关。

试试这个,它对我有用:

 ProcessStartInfo psi = new ProcessStartInfo(); psi.Arguments = "–s –v –qn"; psi.CreateNoWindow = true; psi.WindowStyle = ProcessWindowStyle.Hidden; psi.FileName = "MyInstaller_7.1.51.14.exe"; Process.Start(psi); 

我不知道你提供的论据是否试图隐藏窗口,但也许是这样,部分内容将不再是必要的。

请注意,我使用“notepad.exe”进行了成功的测试。 也许您的安装程序反应不同。

尝试直接运行安装程序:

 string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); string installerPath = Path.Combine(desktopPath, "MyInstaller_7.1.51.14.exe"); Process.Start(installerPath, "–s –v –qn");