use*_*654 3 installation wix burn
我在看这里提出的解决方案:
但我不知道这对于"修改"刻录屏幕(当有人决定删除某个.msi时)是如何工作的.
在卸载/修改页面显示时查看Burn .log(我调用了我的变量来描述是否选中了复选框,'Checkbox1'到'Checkbox6'):
[171C:1034][2013-04-23T11:49:24]i000: Initializing numeric variable 'Checkbox1' to value '1'
[171C:1034][2013-04-23T11:49:24]i000: Initializing numeric variable 'Checkbox2' to value '1'
[171C:1034][2013-04-23T11:49:24]i000: Initializing numeric variable 'Checkbox3' to value '1'
[171C:1034][2013-04-23T11:49:24]i000: Initializing numeric variable 'Checkbox4' to value '1'
[171C:1034][2013-04-23T11:49:24]i000: Initializing numeric variable 'Checkbox5' to value '1'
[171C:1034][2013-04-23T11:49:24]i000: Initializing numeric variable 'Checkbox6' to value '1'
Run Code Online (Sandbox Code Playgroud)
(等等.)
[171C:1034][2013-04-23T11:49:24]i100: Detect begin, 3 packages
[171C:1034][2013-04-23T11:49:24]i000: Setting string variable 'NETFRAMEWORK40' to value '1'
[171C:1034][2013-04-23T11:49:24]i052: Condition 'NETFRAMEWORK40' evaluates to true.
[171C:1034][2013-04-23T11:49:24]i101: Detected package: NetFx40Redist, state: Present, cached: None
[171C:1034][2013-04-23T11:49:24]i101: Detected package: Setup, state: Present, cached: Complete
[171C:1034][2013-04-23T11:49:24]i101: Detected package: Setup1, state: Present, cached: Complete
[171C:1034][2013-04-23T11:49:24]i199: Detect complete, result: 0x0
Run Code Online (Sandbox Code Playgroud)
所以,这让我想知道,各种.msi存储的"检测"结果在哪里?为什么不能将它们存储到我自己的变量'Checkbox1'中,我后来用它来设置复选框的值,是否已选中?
作为一个更基本的问题,Burn的这种使用模式不是标准UI中应该得到很好支持的关键使用模式之一......
您可以通过设置包的InstallCondition属性来控制是否应安装包.例如,如果Checkbox1确定是否Msi1应该安装,那么您的链可能具有:
<MsiPackage Id='Msi1' InstallCondition='Checkbox1' SourceFile='path\to\msi1.msi' />
Run Code Online (Sandbox Code Playgroud)
您可能希望定义您的Checkbox1变量,使其保持其值:
<Variable Name='Checkbox1` Value='1' Persisted='yes' />
Run Code Online (Sandbox Code Playgroud)
注意:默认情况下,Msi1应假定应安装此值,因为该值默认为'1'.
唯一剩下的就是Checkbox1在wixstdba中绑定你的UI.您可以通过覆盖主题文件并将复选框添加到用作控件的Options页面来Checkbox1执行@Id此操作.
| 归档时间: |
|
| 查看次数: |
3931 次 |
| 最近记录: |