c#如何以不同的用户运行msi安装包

本文关键字:运行 用户 msi 安装 | 更新日期: 2023-09-27 18:17:07

我需要能够在最终用户的计算机上安装水晶报告,但是网络安全不允许它在普通用户登录上,所以它必须"以不同的用户运行"来安装在每个桌面上。

我正在尝试创建一个小应用程序,允许任何用户安装水晶报告..到目前为止我有:

        Process p = new Process();
        p.StartInfo.FileName =   @"C:'cabs'CRRuntime_32bit_13_0_5.msi";
        p.StartInfo.Arguments = "/i '"C:''Application.msi'"/qn";
        p.StartInfo.UserName = uname;
        p.StartInfo.Password = pword;
        p.StartInfo.Domain = domain;
        p.StartInfo.UseShellExecute = false;

        try
        {
            p.Start();
        }
        catch(Exception er)
        {
            MessageBox.Show(er.Message);
        }

当我尝试运行此代码时,我看到消息"指定的可执行文件不是此操作系统平台的有效应用程序"

我错过什么了吗?

欢呼

c#如何以不同的用户运行msi安装包

MSI在windows中不是可执行文件。您应该使用msi文件作为参数

调用msiexec
Process p = new Process();
p.StartInfo.FileName =   @"C:'Windows'System32'msiexec.exe";
p.StartInfo.Arguments = @"C:'cabs'CRRuntime_32bit_13_0_5.msi";
p.StartInfo.UserName = uname;
p.StartInfo.Password = pword;
p.StartInfo.Domain = domain;
p.StartInfo.UseShellExecute = false;