我正在创建一个基于 Wix/Burn(3.6 发行版)的自定义向导式 Bootstrap 。我基于 Wix 3.6 Bootstrap 代码。

问题是我无法让 Bootstrap 检测作为 bundle 一部分的 setup.msi 的安装状态。

据我了解,所需要做的就是调用 Engine.Detect(),其中 Engine 是 Bootstrapper 应用程序中 Wix 引擎的一个实例。那时我应该能够查看 Bootstrapper.Command.Action 以查看所需的启动操作是什么。

我的包包含两个项目:.NET 4(网络安装)和我的 setup.msi。

我怀疑我遗漏了一个步骤来确定我是应该将我的向导置于维护模式还是安装模式。

请您参考如下方法:

首先,要确定包是否被检测到,您可以检查当前用户临时目录中的日志文件。它会告诉您是否已检测到包裹。

现在要确定是进入维护模式还是安装模式,您可以通过订阅 DetectPackageComplete 事件来检查包状态。在下面的示例中,我的 UI 使用两个属性 InstallEnabled 和 UninstallEnabled 来确定向用户呈现的“模式”。

private void OnDetectPackageComplete(object sender, DetectPackageCompleteEventArgs e) 
    { 
        if (e.PackageId == "DummyInstallationPackageId") 
        { 
            if (e.State == PackageState.Absent) 
                InstallEnabled = true; 
            else if (e.State == PackageState.Present) 
                UninstallEnabled = true; 
        } 
    } 

上面的代码示例来 self 关于创建 Custom WiX Managed Bootstrapper Application 所需的最少部分的博客文章.


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!