18

Following the excellent suggestion I have moved some variables to WXI file. How do I include it in WXS file?

Community
  • 1
  • 1
Juozas Kontvainis
  • 9,461
  • 6
  • 55
  • 66

2 Answers2

37

use <?include ?> preprocessor tag, for example:

 <?include include.wxi ?>
Juozas Kontvainis
  • 9,461
  • 6
  • 55
  • 66
  • 1
    It works only for 32bit installer. For 64bit this inclusion does not work. I get error: Schema validation failed with the following error at line 1, column 245: The element 'Wix' in namespace 'http://schemas.microsoft.com/wix/2006/wi' cannot contain text. List of possible elements expected: 'Bundle Product Module Patch Fragment PatchCreation'. – jero2rome Apr 07 '14 at 12:55
  • @jero2rome It is because you added `` at the top of the wsx file. wsi files containing `` elements must be added after the `` element – fjch1997 Feb 24 '22 at 23:35
4

for reference:

http://wix.sourceforge.net/manual-wix2/preprocessor.htm

Although this is about wix 2.0 and uses a file with extension .wxs - the game stays the same, as only the "include" element is required to exist in the file.

A good article how to use this can be found here: http://weblogs.sqlteam.com/mladenp/archive/2010/02/17/WiX-3-Tutorial-Understanding-main-WXS-and-WXI-file.aspx

ChriPf
  • 2,700
  • 1
  • 23
  • 25
  • 1
    Also, note that you have to **include in each .wxs file** where you want to use the variables. The only way to avoid this is to define vars at the project level: right-click the project > Properties > Build tab. – Paul Dec 13 '18 at 20:50