1

我正在使用 WIX 3.8、Windows 8 Pro、Visual Studio 2013,并且正在进行静默安装。

当我不带 /quiet 参数运行时,Ir 运行正常。但是当我输入“/quiet”时,什么也没发生。

/qn 参数存在一些问题...任何其他参数运行正常。

字符串 arg = "SetupWIX.msi";

            Process p = new Process();

            p.StartInfo.FileName = "msiexec.exe";
            p.StartInfo.CreateNoWindow = true;
            p.StartInfo.Arguments = "/i " + arg +" /quiet /l*v log.txt";
            p.Start();

它给出了错误3。

MainEngineThread 返回 1603。

有任何想法吗?

坦克斯

4

2 回答 2

7

根据您发送给我的日志,您的 MSI 需要提升。

并非所有 MSI 都这样做。大多数都这样做。如果您是每台机器上下文中的安装程序和/或写入受限区域(程序文件、HKLM、Windows 等),您将需要提升。通常,当您双击 MSI 时,UI 序列以标准用户身份运行,然后当它转换到 Execute 序列时,它会在需要时提示提升。但是,当您运行 /quiet 时,它不能这样做,所以它只会失败。解决此问题的两种方法是提升调用进程或首先“宣传”MSI,以便系统信任它。在这种情况下,UI->Exec 提升会在没有 UAC 请求的情况下自动发生。

于 2014-01-30T13:40:23.237 回答
0

我解决了!!谢谢大家的时间

我错过了

p.StartInfo.Verb = "runas";

我不知道我需要管理员权限才能执行“/quiet”。

于 2014-01-30T12:52:05.547 回答