链中的Wix刻录跳过包

时间:2013-11-20 12:34:20

标签: wix burn

有没有办法跳过链中的一个包?我看过“InstallCondition”并且有这样的代码。

                      <ExePackage Id="RoboMongo"
                        DisplayName="RoboMongo"
                        Cache="no"
                        Compressed="no"
                        PerMachine="yes"
                        Permanent="no"
                        Vital="no"
                        Name="redist\Robomongo-0.8.4-RC2-i386.exe"
                        DownloadUrl="$(var.RoboMongoUrl)"
                        InstallCondition="ComponentSelect_5"
                        InstallCommand='/Action=Install'
                        UninstallCommand="/Action=Uninstall"
                        RepairCommand ="/Action=Repair"
                        DetectCondition="RoboMongoInstalled">

            <RemotePayload Description="Программа администрирования MongoDB"
            Version ="0.8.4.2"
                ProductName="RoboMongo"
                Hash="71C17E48BC32304FA8724FFA7CA1C4C08891BC97" Size="7141182" />

但我不想在InstallCondition = false上卸载它。我只是想跳过它。

提前谢谢。

1 个答案:

答案 0 :(得分:4)

如果您使用的是托管引导程序,则可以通过处理PlanPackageBegin事件来实现所需的行为。代码看起来大概如下:

    public MainViewModel(BootstrapperApplication bootstrapper)
    {
        bootstrapper.PlanPackageBegin += (sender, args) =>
        {
            if (bootstrapper.Engine.StringVariables["ShouldSkipPackage"] == "1")
                if (args.PackageId == "RoboMongo")
                    args.State = RequestState.None;
        };
    }