【发布时间】:2013-12-18 04:08:29
【问题描述】:
我有以下 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。
第二行是supposed 以静默模式启动安装程序,以便进程在后台运行,安装向导根本不会出现。在命令提示符下运行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 是静音模式下运行的开关。
【问题讨论】:
-
尝试将所有标志移到可执行文件的名称之前。
-
@Amy,在可执行文件之前,在哪里?
-
@Amy,如果你的意思是 /C 在哪里,那我已经试过了。
-
如果你用引号括住你的命令,它有效吗?
"/c \"" + desktopPath + "\\" + "MyInstaller_7.1.51.14.exe –s –v –qn\"",所以你应该以字符串/c "C:\Users\ME\Desktop\MyInstaller_7.1.51.14.exe -s -v -qn"结尾。
标签: c# cmd silent-installer