C# code to run my installer.exe file in silent mode, in the background, [duplicate]

半世苍凉 提交于 2019-12-01 03:01:17

问题


I have this C# code:

string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
ProcessStartInfo psi = new ProcessStartInfo();
psi.Arguments = "–s –v –qn";
psi.CreateNoWindow = true;
psi.WindowStyle = ProcessWindowStyle.Hidden;
psi.FileName = desktopPath + "\\" + "MyInstaller_7.1.51.14.exe";
Process.Start(psi);

The first line simply grabs the path of my desktop and the rest attempts to run an installer exe file in silent mode. By silent mode I mean, in the background, without the install wizard, or any UI of any sort during installation. The –s –v –qn arguments are there so that that the installation runs in silent mode.

The problem is that when I run the command equivalent of the above in the command prompt, which is this:

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

The installer runs as wanted, in silent mode.

Unfortunately, the problem is that trying the same thing in C# with the above code does NOT run the installer in silent mode. The installation wizard DOES appear, which is BAD for by purposes.

I'm thinking maybe I need to run this like a service via C# or under the 0 id of the users. Or with an -i switch. I'm not really sure. Can anyone help??

Just for clarification, my question is, how do I write C# code to run my installer.exe file in silent mode, in the background, with no visible UI?

Please help.


回答1:


This is the correct answer:

ProcessStartInfo psi = new ProcessStartInfo();
psi.Arguments = "/s /v /qn /min";
psi.CreateNoWindow = true;
psi.WindowStyle = ProcessWindowStyle.Hidden;
psi.FileName = newRenamedFile;
psi.UseShellExecute = false;
Process.Start(psi);

The issue was the switches were missing the forward slashes.



来源:https://stackoverflow.com/questions/20646111/c-sharp-code-to-run-my-installer-exe-file-in-silent-mode-in-the-background

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!