我希望能够将由热量生成的WXS文件与之前的版本进行比较,以便我可以验证更改。
但我无法找到组件顺序背后的任何逻辑。生成的组件既不按Id也不按目录名排序。总是当我重新生成我的WXS文件并添加了一些文件时,顺序完全不同,这使得比较非常困难。
有没有办法控制排序顺序?如果组件将按内部文件节点的源排序,那将是理想的。但任何不变的命令对我来说都足够好了。
E.g。对于以下示例,当组件按文件源排序时,它会很棒。 I.E. Log4Net之前的AutoMapper
<Component Id="cmpB83..." Directory="DIR.MYDIR" Guid="{2A49...}">
<File Id="filA272..." KeyPath="yes" source="$(var.MYVAR)\AutoMapper.xml" />
</Component>
<Component Id="cmp445..." Directory="DIR.MYDIR" Guid="{1C34...}">
<File Id="filB356..." KeyPath="yes" source="$(var.MYVAR)\Log4Net.xml" />
</Component>
我用以下参数开始加热:
heat.exe dir MYDIR -gg -dr DIR.MYDIR -srd -sreg -ke -cg compGroup.MYGROUP -var var.MYVAR -out ..\MYOUTPUT.wxs
我使用的是WiX 3.11。
答案 0 :(得分:0)
由于两年来一直没有答案,所以我将展示我所做的事情:
我使用此代码通过生成的文件中的“源”对组件进行重新排序,并将其存储到副本中:
>>> list(getter_commands)
[all_commands.GET_ELEMENT_A, all_commands.GET_ELEMENT_B, all_commands.GET_ELEMENT_C, all_commands.GET_ELEMENT_D]
>>> getter_commands.GET_ELEMENT_C
<all_commands.GET_ELEMENT_C: 16>
>>> all_commands.GET_ELEMENT_D in getter_commands
True
>> all_commands.SET_ELEMENT_A in getter_commands
False