首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >禁用/quiet /silent上的Wix自定义操作

禁用/quiet /silent上的Wix自定义操作
EN

Stack Overflow用户
提问于 2018-10-24 21:22:16
回答 2查看 1.1K关注 0票数 0

在WIX自定义操作中,是否有一种方法可以检测/silent或/quiet命令行开关是否调用了MSI?基本上,我想要的是不执行自定义操作(因为它显示一个表单),或者在这些命令行开关被传递时以不同的方式处理它,但是我无法找到它。

有什么办法可以检测到吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-01 22:41:19

我终于想出来了。Wix基本上总是将UILevel属性设置为2.0。它有自己的属性,名为WixBundleUILevel。现在重要的是,在WiX3.11之前,这个WixBundleUILevel是一个内部属性,不能被Bundle项目或MSI自定义操作访问。所以我就是这么做的

  1. 在MSI中定义一个名为UI_LEVEL的属性(重要,使其全部大写)
  2. 在Bundle.wxs中,我在调用MSIPackage的地方设置了UI_LEVEL属性,如下所示

最后,在自定义操作中,我检查以下属性

代码语言:javascript
运行
复制
int uiLevel;
                if (int.TryParse(session["UI_LEVEL"], out uiLevel))
                {
                    if (uiLevel == 4)
                        using (var form = new WhatsNew())
                        {
                            form.ShowDialog();
                        }
                    else
                        session.Log("Skipping What's new dialogue as UI Level is not 4");

                }
                else
                {
                    session.Log("Couldnt figure out the UI level, so skipped the prompt");
                }

最后

代码语言:javascript
运行
复制
here are the possible values of this f**ed up property
                WixBundleUILevel              Value     Burn parameters
                BOOTSTRAPPER_DISPLAY_FULL       4         (none)
                BOOTSTRAPPER_DISPLAY_PASSIVE    3         /silent
                BOOTSTRAPPER_DISPLAY_NONE       2         /quiet
票数 2
EN

Stack Overflow用户

发布于 2018-10-25 09:14:01

您可以根据条件检查属性UILevel并执行CA。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52978077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档