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

本文关键字:运行 msi 安装 程序 cmd 何使用 管理员 身份 | 更新日期: 2023-09-27 18:21:06

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

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

注意,如果我以管理员的身份从cmd手动运行cmd命令,它运行良好

当我运行它时,我只是在管理模式下获得cmd屏幕,但该命令不执行

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

正如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();