如何确保在Windows Installer AdminInstall期间安装功能

col*_*lch 3 windows-installer wix wix3.5

我正在使用WiX创建一个中等复杂的安装程序.我有一个0级功能,我想有条件地安装,但也总是在管理员安装期间,以便更容易修补管理员图像.我尝试了几件事:

  1. 在AdminUISequence的CostFinalize操作之前设置属性(这是msdn声明评估Condition表时).在这种情况下的条件如下:

    <Condition Level="1">( VersionNT >= 601 AND NOT FASTINSTALL = "1" ) OR INSTALLCONDFEATURE = "1"</Condition>

    其中FASTINSTALL和INSTALLCONDFEATURE都是Secure和Admin.

  2. 使用Windows Installer ACTION或EXECUTEACTION属性.在这种情况下,条件是这样的:

    <Condition Level="1">( VersionNT >= 601 AND NOT FASTINSTALL = "1" ) OR ACTION = "ADMIN"</Condition>

这些似乎都不起作用.我只是在这里遗漏了一些东西,还是有不同的,更好的方法来做到这一点?

Bob*_*son 6

根据MSI SDK,管理员安装中永远不会安装Feature/@ Level ="0"的功能:

在管理安装期间,安装程序会为产品中的所有功能创建源图像,但功能表的"级别"列中的功能除外.

所以你需要扭转你的逻辑; 将功能级别设置为大于零的值,并使用条件将非管理员安装设置为零.