[wix-users] Unable to correctly specify a variable for WiX within Visual Studio
Phill Hogland
phill.hogland at rimage.com
Wed Mar 9 09:33:19 PST 2016
Another approach, similar to using DefineConstants is to use CompilerAdditionalOptions in the project file:
<CompilerAdditionalOptions>
$(CompilerAdditionalOptions)
-dOutputNamePreProcessorVar="$(OutputName)"
</CompilerAdditionalOptions>
Or in the VS Project Properties in the Tools Settings windows:
-dOutputNamePreProcessorVar="$(OutputName)"
In both cases this assumes that the project file defines a MSBuild property named <OutputName>MyName</OutputName> or that there is an Environment variable defined as OutputName.
Then in the .wxs the preprocessor variable is consumed using the $(var.OutputNamePreProcessorVar) syntax.
________________________________________
From: wix-users <wix-users-bounces at lists.wixtoolset.org> on behalf of Hoover, Jacob <Jacob.Hoover at greenheck.com>
Sent: Tuesday, March 8, 2016 2:48 PM
To: WiX Toolset Users Mailing List
Subject: Re: [wix-users] Unable to correctly specify a variable for WiX within Visual Studio
<PropertyGroup>
<JavaDocBase>c:\javadocs</JavaDocBase>
<DefineConstants>
$(DefineConstants);
VersionMajorMinor=$(VersionMajorMinor);
VersionBuild=$(VersionBuild);
VersionQFE=$(VersionQFE);
BundleUpgradeCode=$(BundleUpgradeCode);
JavaDocBase=$(JavaDocBase);
</DefineConstants>
</PropertyGroup>
Should work if you are referring to them in your WXS via
<Bundle Version="$(var.VersionMajorMinor).$(var.VersionBuild).$(var.VersionQFE)"
UpgradeCode="$(var.BundleUpgradeCode)"
...
If you have a PreBuild event, use the MSBuild property instead of the var syntax.
<PreBuildEvent>"$(WIX)bin\heat.exe" dir "$(JavaDocBase)" -cg JavaDocs_JSP -gg -scom -sreg -sfrag -srd -dr INSTALLDIR -var var.JavaDocBase -out "$(ProjectDir)\JavaDocs_JSP_Fragment.wxs"</PreBuildEvent>
I am a bit confused why you opted not to use the HeatDirectoryTask.
-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of Jon Earle
Sent: Tuesday, March 08, 2016 1:15 PM
To: wix-users at lists.wixtoolset.org
Subject: [wix-users] Unable to correctly specify a variable for WiX within Visual Studio
Setup is Wix 3.10.2 and visual studio 2015. Working with a wix setup project and custom action project.
I want to create a fragment containing the javados for my project. I had read (http://weblogs.sqlteam.com/mladenp/archive/2010/02/11/WiX-3-Tutorial-SolutionProject-structure-and-Dev-resources.aspx) to set a pre-processor variable (or system variable). I opted to include the variable definition in the project. I tried the pre-processor var <DefineConstants>JavaDocBase=c:\javadocs</DefineConstants>
and just setting a normal variable:
<WixVariables>JavaDocBase=c:\javadocs</WixVariables>
Neither ended up working.
Pre-Build event:
<PropertyGroup><PreBuildEvent>"$(WIX)bin\heat.exe" dir "$(var.JavaDocBase)" -cg JavaDocs_JSP -gg -scom -sreg -sfrag -srd -dr INSTALLDIR -var var.JavaDocBase -out "$(ProjectDir)\JavaDocs_JSP_Fragment.wxs"</PreBuildEvent></PropertyGroup>
I always seem to receive the error:
Unhandled Exception:The expression """.JavaDocBase" cannot be evaluated. Method 'System.String.JavaDocBase' not found.
I have tried var.JavaDocBase, wix.JavaDocBase, env.JavaDocBase and Just JavaDocBase... while the last will allow the command to run, it doesn't put in the proper path so I am no further ahead.
Is it possible to replicate what is in that previously linked tutorial and if so, what have I done wrong?
____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/
____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/
More information about the wix-users
mailing list