I've previously used...
<?define PRODUCTVERSION="!(bind.FileVersion.MyLibrary.dll)" ?>
... to define a version variable for use in my installers. For the first time I'm using Heat.exe to harvest the files/folders I need in my installer (which includes MyLibrary.dll) to a file called Source.wxs.
If I try to build the installer I get the following error:
Unresolved bind-time variable !(bind.FileVersion.MyLibrary.dll)
It's like the Product.wxs file where the PRODUCTVERSION
is declared can't see the Source.wxs file that has the details of the MyLibrary.dll, but I know this isn't true since if I set PRODUCTVERSION="1.0.0.0"
then the installer builds and all this files are installed correctly.
How can I get bind.FileVersion
to 'see' MyLibrary.dll?
EDIT
I can get it to work if I use the non-human friendly File Id from Source.wxs (see below), but is this really the best solution?
<?define PRODUCTVERSION="!(bind.fileVersion.fil023E197261ED7268770DDE64994C4A55)" ?>