WiX: Define made in included file not avaible from wxs-fragment-file
I have a defines.wxi
-file which contains some good definitions used in all my wxs-files.
When I attempt to reference the defined value from one of the <Fragment>
-files I get Undefined preprocessor variable '$(var.IMAGE_FOLDER)'
back in my face.
I guess there is something trivial I am missing here... Any ideas?
Edit 19:th April.
Found that issue only occurs if reference from a Fragment-file. Re-wrote sample to match that.defines.wxi
<Include>
<?define IMAGE_FOLDER="Images" ?>
</Include>
some-Fragment.wxs
<Fragment>
&开发者_开发百科lt;?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>
Solved it.
Where it in the sample says:
<?Include defines.wxi ?>
it should be lower case...
<?include defines.wxi ?>
then it works like a charm!
/L
Ok, another try.
Do you reference anything in that <Fragment/>
from the main <Product/>
? The contents of the fragment are visible to the rest of the code in case you reference anything from it. For instance, you can reference a component (<ComponentRef/>
) or component group (<ComponentGroupRef/>
). Once anything is referenced, the entire fragment is included.
Hope this helps.
In the text of the error message you provided it says "Undefined preprocessor variable '$(var.MAGE_FOLDER)'", not $(var.IMAGE_FOLDER) - the leading 'I' is missing. This made me think that you reference the same variable somewhere in the rest of your code, but misspelling it.
In this case, the candle.exe is absolutely right - it can find IMAGE_FOLDER, but can't find MAGE_FOLDER.
Hope this is the case and you'll fix it quickly. ;-)
精彩评论