2

我有以下 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 是用于在静默模式下运行的开关。

4

2 回答 2

1

试试这个,它对我有用:

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”进行成功的测试。也许您的安装人员反应不同。

于 2013-12-17T20:08:29.317 回答
0

尝试直接运行安装程序:

string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
string installerPath = Path.Combine(desktopPath, "MyInstaller_7.1.51.14.exe");
Process.Start(installerPath, "–s –v –qn");
于 2013-12-17T19:40:41.847 回答