首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bootstrapper行动令

Bootstrapper行动令
EN

Stack Overflow用户
提问于 2016-02-17 13:19:35
回答 1查看 115关注 0票数 0

我有一个具有自定义UI、1 msi包和一些先决条件的引导程序。我想要做的是在自定义UI中检测先决条件,然后覆盖bundle元素中的一个变量,以安装或不安装先决条件。

所以基本上:

代码语言:javascript
复制
    <Variable Name="VCRedist2010SP1_x86" Value="TRUE"/>
<Chain>    
  <ExePackage Id="VCRedist2010SP1_x86" Cache="no" Compressed="yes" PerMachine="yes" Permanent="yes" Vital="yes" InstallCommand="/q"
    SourceFile="E:\Redist\vcredist_2010_SP1_x86.exe"
    DetectCondition="NOT VCRedist2010SP1_x86"/>
...      
</Chain>

然后从我的UI中覆盖VCRedist2010SP1_x86变量。问题是,在重写变量之前,对DetectCondition的检查是发生的。这是日志:

代码语言:javascript
复制
Condition 'NOT VCRedist2010SP1_x86' evaluates to false.
Setting string variable 'VCRedist2010SP1_x86' to value 'FALSE'

问题是,它是否可以像这样工作,或者我是否总是要用RegistrySearch在XML中进行检测?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-17 15:30:06

原因是我在这个过程中调用Detect太早了,我需要稍后调用它,并且要小心,因为它是异步的。我可能需要监听DetectComplete事件。

但我更大的问题是没有Boolean类型的变量。最后我用了:

代码语言:javascript
复制
<Variable Name="VCRedist2010SP1_x86" Value="0" Type="numeric"/>

然后像这样比较一下:

代码语言:javascript
复制
DetectCondition="VCRedist2010SP1_x86 = 1"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35457878

复制
相关文章

相似问题

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