[wix-devs] Stable Guid MSBuild task

Hoover, Jacob Jacob.Hoover at greenheck.com
Tue Sep 17 11:53:30 PDT 2019


Just like the Id’s of files/components remain stable when using an *, this logic is able to generate a RFC 4122 compliant GUID.

For me, this allows me to not constantly update a statically generated list of GUIDs, but if I wanted to know what GUID was used for a product code of a build from 3 years ago I could calculate the value.  In addition, I repackage my application for multiple different installs (think Develop/Test/Production/etc) and I want to build the installs from the same authoring.

In my example, the Version parameter is only the Major.Minor part, not for each point release.

From: Edwin Castro [mailto:egcastr at gmail.com]
Sent: Tuesday, September 17, 2019 1:45 PM
To: WiX Toolset Developer Mailing List <wix-devs at lists.wixtoolset.org>
Cc: Hoover, Jacob <Jacob.Hoover at greenheck.com>
Subject: Re: [wix-devs] Stable Guid MSBuild task

Under what circumstances would I want my UpgradeCode to change build to build?

What does stable mean? I assume the code changes build to build but in what ways does it change?

--
Edwin G. Castro


On Tue, Sep 17, 2019 at 8:37 AM Hoover, Jacob via wix-devs <wix-devs at lists.wixtoolset.org<mailto:wix-devs at lists.wixtoolset.org>> wrote:
For wix4, would anyone else find use in having the existing stable guid logic also exposed as a MSBuild task? While a random guid works, sometimes having something deterministic is desired.

Ex:
  <Target Name="GenerateUpgradeCode">
                <PropertyGroup>
                                <ProductCodeKey>$(ApplicationBuild)#$(Version)#ProductCode</ProductCodeKey>
                                <UpgradeCodeKey>$(ApplicationBuild)#$(Version)#UpgradeCode</UpgradeCodeKey>
                                <Salt>{C1BA69E1-B69D-46B8-A095-CAF6337B71F4}</Salt>
                </PropertyGroup>

                <GetStableGUID Key="$(ProductCodeKey)" Salt="$(Salt)">
                                <Output TaskParameter="Stable" PropertyName="ProductCode" />
                </GetStableGUID>
                <GetStableGUID Key="$(UpgradeCodeKey)" Salt="$(Salt)">
                                <Output TaskParameter="Stable" PropertyName="UpgradeCode" />
                </GetStableGUID>
                <PropertyGroup>
                                <DefineConstants>
                                  $(DefineConstants);
                                  ProductCode=$(ProductCode);
                                  UpgradeCode=$(UpgradeCode);
                                </DefineConstants>
                </PropertyGroup>
  </Target>


Thanks,
Jacob

____________________________________________________________________
WiX Toolset Developer Mailing List provided by FireGiant http://www.firegiant.com/
NOTE: This email was received from an external source. Please use caution when opening links or attachments in the message.


More information about the wix-devs mailing list