Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to generate consistent GUID using wix harvest tool

Tags:

guid

wix

wix3.7

I am new to using WiX so this my be a dumb question. I am trying to keep the GUID generated by the harvest tool (heat.exe) consistent for files that I am packaging. Everyone seems to say that as long as the file path and sub path remain same heat.exe will generate the same GUID for a file. Unfortunately, I am not seeing that behavior. My workflow is as follows.

Copy all the deliverable files to a staging directory during my build process. Then run heat.exe in the staging directory to generate the component fragment wxs file. Before I copy the file into the staging directory I clear all my old files.

I want to add the generated wxs file into my source control so that I can achieve minor upgrades. If my understanding is correct for me to achieve that I need to have consistent GUID across my builds so that I can track them.

The command line I use for generating the wxs file is as follows:-

c:\foobar\build\>C:\win32\wix-3.7.1224.0\heat.exe dir . -cg MyCG -dr INSTALLDIR -g1 -gg -nologo -sreg -suid -t C:\foobar\src\support\packaging\wix\foo.xslt -var var.foobarSource -out c:\foobar\src\support\packaging\wix\foo.wxs

What I see that the GUID generated are different during each run. Is there was a way for me to keep GUID consistent.

like image 474
tuxalot Avatar asked Dec 23 '13 17:12

tuxalot


People also ask

How to generate WiX GUID?

To generate GUIDs use the guidgen tool that ships with Visual Studio, generally located under Tools > Create GUID menu, or the GuidGen.com site. GUIDs generated this way will work fine in WiX, however since they are in mixed case they may cause issues if you share them with users of other, non-WiX tools.

How do I generate a GUID?

To Generate a GUID in Windows 10 with PowerShell, Type or copy-paste the following command: [guid]::NewGuid() . This will produce a new GUID in the output. Alternatively, you can run the command '{'+[guid]::NewGuid(). ToString()+'}' to get a new GUID in the traditional Registry format.

How do I use heat EXE on WiX?

Navigate to WiX's bin directory from a command prompt and type heat.exe -? to see information about its usage. To make things easy, consider adding the path to the WiX bin directory to your computer's PATH environment variable so that you won't have to reference the full path to the executable each time you use it.


1 Answers

You should specify -ag flag.

-ag
Auto generate component guids at compile time, e.g. set Guid="*".

As long as your file paths are the same, generated GUID's will be the same for files.

like image 144
Erti-Chris Eelmaa Avatar answered Oct 03 '22 20:10

Erti-Chris Eelmaa