[wix-users] Pass Local Variable to CustomAction

Hoover, Jacob Jacob.Hoover at greenheck.com
Mon Mar 6 14:17:01 PST 2017


Can you show me the definition of the CA in your WXS?  Is it an immediate or deferred CA? 

-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of Brian Enderle
Sent: Monday, March 06, 2017 3:56 PM
To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
Subject: Re: [wix-users] Pass Local Variable to CustomAction

I can already reference my variables using $(var.ShortAssyVersion).

My issue is using this variable when calling a CustomAction.  The value for @(var.ShortAssyVersion is not making it to the session of the CustomAction.

Brian

If you can't explain it simply, you don't understand it well enough.  - Albert Einstein

On Mon, Mar 6, 2017 at 4:22 PM, Hoover, Jacob <Jacob.Hoover at greenheck.com>
wrote:

> You need to modify the DefineConstants Property in the wixproj.  
> Normally I property drive the application, so I can just do:
>
>     <DefineConstants>
>       $(DefineConstants);
>       UpgradeCode=$(UpgradeCode);
>       ProductName=$(ProductName);
>     </DefineConstants>
>
> And then they can be referenced in wxs via $(var.UpgradeCode).
>
> Since your property is being defined inside a target, you would have 
> to do the MSBuild magic to update it.
>
> -----Original Message-----
> From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On 
> Behalf Of Brian Enderle
> Sent: Monday, March 06, 2017 3:14 PM
> To: WiX Users <wix-users at lists.wixtoolset.org>
> Subject: [wix-users] Pass Local Variable to CustomAction
>
> I have a local variable created as a PreBuild event as follows:
>
>   <Target Name="BeforeBuild">
>     <GetAssemblyIdentity
> AssemblyFiles="$(SolutionDir)MyProject\bin\MyProject.exe">
>       <Output TaskParameter="Assemblies" ItemName="AssemblyVersions" />
>     </GetAssemblyIdentity>
>     <CreateProperty Value="%(AssemblyVersions.Version)">
>       <Output TaskParameter="Value" PropertyName="AssyVersion" />
>     </CreateProperty>
>     <CreateProperty
> Value="$(AssyVersion.Split('.')[0]).$(AssyVersion.Split('.')
> [1]).$(AssyVersion.Split('.')[2])">
>       <Output TaskParameter="Value" PropertyName="ShortAssyVersion" />
>     </CreateProperty>
>   </Target>
>
> Basicaly, I am creating a Major.Minor.Build number (no Revision).
>
> I would like to pass this value to a CusotmAction.  I have tried both 
> of the following but neither works:
>
>     <CustomAction Id='AssignProductVersion_CA'
>                   Property='PRODUCT_VERSION'
>                   Value='[ShortAssyVersion]' />
>
> and
>
>     <CustomAction Id='AssignProductVersion_CA'
>                   Property='PRODUCT_VERSION'
>                   Value='$(var.ShortAssyVersion)' />
>
> How can I pass this value to the CustomAction?
>
>
> Brian
>
> If you can't explain it simply, you don't understand it well enough.  
> - Albert Einstein
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant 
> http://www.firegiant.com/
>
> ____________________________________________________________________
> 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