我可以通过引用其中定义的属性来包含Wix片段吗?

use*_*400 3 wix

我正在使用Wix 3.8.我有一个Wix库,在其wxs文件中我有一个具有属性的Fragment:

<Fragment>
  <!-- The following property is only used for reference -->
  <Property Id="ReferenceProp"></Property>

  <!-- other stuff here ... -->
</Fragment>
Run Code Online (Sandbox Code Playgroud)

在我的安装项目中,我想使用这个片段的内容,但我想以一种简单的方式进行,所以我尝试将一个PropertyRefto 添加到ReferenceProp上面定义的属性中.我收到一个错误:

Unresolved reference to symbol 'Property:ReferenceProp'
Run Code Online (Sandbox Code Playgroud)

但是,如果我将所述属性更改为ComponentGroup(并且ref为a ComponentGroupRef),那么它可以正常工作.这是一个错误吗?它的设计是否以不直观的方式工作?还是我错过了什么?

编辑:要清楚我遇到上述错误时确实有我的PropertyRef内部Product元素.

Edit2:我知道在明确说明我可以使用PropertyRef引入片段之前我已经看过一些信息.以下是来自Nick Ramirez的Wix 3.6开发人员指南Windows安装程序XML的引用:

例如,属性(可用于存储数据的变量)由Property元素表示,可以存储在Fragment元素中的单独文件中.然后,通过使用PropertyRef元素在主源文件中引用其中一个元素,您可以将它们全部放入项目中."

这本书是错的,或者这是他们删除的功能,或者是新引入的错误.

Aar*_*ron 5

您需要链接到一个组件以加载整个片段.

引用John Cooper的话:

您需要一个引用元素到片段内的任何一位.Wix链接当前的工作方式,链接到片段中的一个项目会带来整个片段.

例如,如果片段中有Component元素,则可以使用具有相应Id属性的ComponentRef链接片段.

和伊恩威廉姆斯

是的,您需要引用片段中的内容(DirectoryRef,ComponentRef等)来加载片段(它将全部被加载,请注意).

还记得在你的蜡烛和灯光调用中加入他的.wxs文件

http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/How-to-reference-a-wxs-file-from-another-td7334084.html

编辑

PropertyRef也可以.我自己检查了一下.改变这个:

<Property Id="ReferenceProp"></Property>
Run Code Online (Sandbox Code Playgroud)

对此:

<Property Id="ReferenceProp" Value="1" />
Run Code Online (Sandbox Code Playgroud)

您需要设置一个值.