如何在Wix安装程序中禁用回滚

时间:2014-12-23 01:04:25

标签: wix

我的安装程序会在进度条开始前挂起近一分钟,我想消除这种延迟。我做了一个详细的安装日志(下面),很清楚,减速是在设置还原点。

我很乐意牺牲回滚功能。我看到Wix架构中甚至还有一个DisableRollback元素。但是,我无法让它发挥作用。据推测,我只是不知道如何正确使用它 - 我是Wix和部署问题的新手。我该如何解决这个问题?

尝试:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">    
    <Product ...>
        <Package ... />
        <MediaTemplate EmbedCab="yes" />
        <UIRef Id="WixUI_Minimal" />

        <Feature ...>
            ...
        </Feature>

        <InstallExecuteSequence>
            <DisableRollback Before="InstallExecute" Overridable="no" />
        </InstallExecuteSequence>

日志的相关部分:

           ******* Product: C:\Users\mmorriso\Downloads\DevMDSetup.msi
           ******* Action: INSTALL
           ******* CommandLine: **********
MSI (s) (3C:E8) [18:50:23:536]: Machine policy value 'DisableUserInstalls' is 0
MSI (s) (3C:E8) [18:50:23:571]: Machine policy value 'LimitSystemRestoreCheckpointing' is 0
MSI (s) (3C:E8) [18:50:23:571]: Note: 1: 1715 2: DevMD 
MSI (s) (3C:E8) [18:50:23:571]: Note: 1: 2205 2:  3: Error 
MSI (s) (3C:E8) [18:50:23:571]: Note: 1: 2228 2:  3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1715 
MSI (s) (3C:E8) [18:50:23:571]: Calling SRSetRestorePoint API. dwRestorePtType: 0, dwEventType: 102, llSequenceNumber: 0, szDescription: "Installed DevMD".
MSI (s) (3C:E8) [18:51:35:485]: The call to SRSetRestorePoint API succeeded. Returned status: 0, llSequenceNumber: 323.
MSI (s) (3C:E8) [18:51:35:487]: File will have security applied from OpCode.

它不是一个大型安装程序 - 几十个文件,没有自定义操作等。

1 个答案:

答案 0 :(得分:4)

我建议您阅读Windows Installer MSDN主题:

System Restore Points and the Windows Installer

  

从Windows Installer 5.0开始,MSIFASTINSTALL属性可以   设置为阻止安装生成系统还原   点。

还有其他可能的调整。

DISABLEROLLBACK property