C# 如何使用C以管理员身份在cmd中运行msi安装程序#

C# 如何使用C以管理员身份在cmd中运行msi安装程序#,c#,process,cmd,admin,C#,Process,Cmd,Admin,我有一个msi安装程序,我需要从C# 注意,如果我以管理员的身份从cmd手动运行cmd命令,那么它工作正常 当我运行它时,我只是在管理模式下得到cmd屏幕,但是命令没有执行,正如V2Solutions-MS团队提到的,解决方案是更改以下内容 process.StartInfo.FileName = "msiexe.exe" 代码将是 Process process = new Process(); process.StartInfo.FileName = "msiexec"; process

我有一个msi安装程序,我需要从C#

注意,如果我以管理员的身份从cmd手动运行cmd命令,那么它工作正常


当我运行它时,我只是在管理模式下得到cmd屏幕,但是命令没有执行,正如V2Solutions-MS团队提到的,解决方案是更改以下内容

process.StartInfo.FileName = "msiexe.exe" 
代码将是

Process process = new Process();
process.StartInfo.FileName = "msiexec";
process.StartInfo.WorkingDirectory = @"C:\temp\";
process.StartInfo.Arguments = " /quiet /i Setup.msi ADDLOCAL=test";
process.StartInfo.Verb = "runas";
process.Start();
process.WaitForExit(60000);

这对我有用:)

这也将帮助您:

Process process = new Process();
process.StartInfo.FileName = "msiexec.exe";
process.StartInfo.Arguments = string.Format("/qn /i \"{0}\" ALLUSERS=1", @"somepath\msiname.msi");
process.Start();
process.WaitForExit();

这个代码有什么问题?有任何错误消息吗?请在我运行它时检查此链接我只是在管理模式下获得cmd屏幕,但命令不执行我知道,但我需要单独安装msi为什么不运行msiexec而不是cmd?为了以防万一,您可以将WindowsStyle设置为Hidden。字符串.Format是我缺少的部分
Process process = new Process();
process.StartInfo.FileName = "msiexec.exe";
process.StartInfo.Arguments = string.Format("/qn /i \"{0}\" ALLUSERS=1", @"somepath\msiname.msi");
process.Start();
process.WaitForExit();