C#如何以其他用户身份运行msi安装包

时间:2016-11-09 07:03:30

标签: c# process crystal-reports installation execute

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

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

        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);
        }

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

我错过了什么吗?

干杯

1 个答案:

答案 0 :(得分:0)

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;