Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WiX: Define made in included file not avaible from wxs-fragment-file

Tags:

wix

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>
  <?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>
like image 416
leiflundgren Avatar asked Apr 17 '10 16:04

leiflundgren


2 Answers

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

like image 140
leiflundgren Avatar answered Sep 27 '22 16:09

leiflundgren


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.

like image 20
Yan Sklyarenko Avatar answered Sep 27 '22 15:09

Yan Sklyarenko