在Microsoft.Deployment.WindowsInstaller.dll(Windows Installer XML)上通过visual c#app执行的msi安装上指定quiet和norestart

时间:2015-01-09 11:00:34

标签: c# .net wix windows-installer

所有!

我在我的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方法做了一个手册(它依赖于案例!),不可重启,不安静(取决于案例!),安装。

感谢您的帮助!

2 个答案:

答案 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需要提升,则它将失败。作为例外,这可能会被冒充回客户端。