所有!
我在我的C#项目中使用动态库“Microsoft.Deployment.WindowsInstaller.dll”(来自Windows Installer XML,即http://wixtoolset.org/),以编程方式安装MSI包:
using System;
using Microsoft.Deployment.WindowsInstaller;
private static void InstallWIXML(string msiPackage)
{
Installer.InstallProduct(msiPackage, "REBOOT=R");
}
。但我不知道如何使这种自动化,而不是可重启,安静,安装。这个InstallWIXML
方法做了一个手册(它依赖于案例!),不可重启,不安静(取决于案例!),安装。
感谢您的帮助!
答案 0 :(得分:1)
我使用了以下代码,就像我对Christopher Painter的回答一样:
using System;
using Microsoft.Deployment.WindowsInstaller;
private static void InstallWIXML(string msiPackage)
{
Installer.SetInternalUI(InstallUIOptions.Silent);
Installer.InstallProduct(msiPackage, "REBOOT=R");
}
。 它适用于我的问题。
感谢Christopher Painter的回答和评论!
答案 1 :(得分:0)
将REBOOT = R更改为REBOOT = R / QN。还要意识到,在静默安装中,安装程序无法请求UAC提升。如果调用进程没有提升并且MSI需要提升,则它将失败。作为例外,这可能会被冒充回客户端。