我有一个defines.wxi
- 文件,其中包含我所有wxs文件中使用的一些好的定义。
当我尝试从其中一个<Fragment>
文件引用定义的值时,我得到了Undefined preprocessor variable '$(var.IMAGE_FOLDER)'
。{/ p>
我想这里有一些微不足道的东西...... 有什么想法吗?
编辑19:4月。
发现只有在片段文件中引用时才会出现该问题
重新编写样本以匹配该内容。
defines.wxi
<Include>
<?define IMAGE_FOLDER="Images" ?>
</Include>
一些-Fragment.wxs
<Fragment>
<?Include defines.wxi ?>
<Component Id='c.Images' Guid=".." Directory='INSTALLDIR.Images' >
<File Id='f.sample.jpg' Source='$(var.IMAGE_FOLDER)sample.jpg' Name='sample.jpg' />
</Component>
答案 0 :(得分:5)
解决了它。
样本中的位置说:
<?Include defines.wxi ?>
它应该是小写 ...
<?include defines.wxi ?>
然后它就像一个魅力!
/ L
答案 1 :(得分:1)
好的,再试一次。
您是否引用了<Fragment/>
主<Product/>
中的任何内容?如果您从中引用任何内容,则片段的内容对其余代码可见。例如,您可以引用组件(<ComponentRef/>
)或组件组(<ComponentGroupRef/>
)。一旦引用了任何内容,就会包含整个片段。
希望这有帮助。
答案 2 :(得分:0)
在您提供的错误消息文本中,显示“未定义的预处理器变量'$(var。 MAGE_FOLDER )'”,而非$(var。 IMAGE_FOLDER ) - 缺少领先的'我'。这让我觉得你在代码的其余部分中引用了同一个变量,但拼错了它。
在这种情况下,candle.exe绝对正确 - 它可以找到IMAGE_FOLDER,但找不到MAGE_FOLDER。
希望是这种情况,你会很快解决它。 ; - )