Does Installshield follow RFC 4122 specification for generating component GUIDs?

Viewed 71

I need to add some files from customer environment into existing msi before installation. In order to do this, We have C# WinForms project which generates transform(.mst) file and add the files in it using .cab. For the new files, new components are created and consistent unique GUIDs are generated too. But, I am not sure if these GUIDS are ok as per Installshield generated GUIDs or MSI technology?

Does Installshield follow RFC 4122 specification for generating component GUIDs? If yes, which version of it?

Also, should I need to handle GUID collisions too?

1 Answers

Recommended Read: Please read this answer on: When to change MSI component GUIDS. A quick search of the MSI SDK found nothing on RFC.

WiX Sources: It turns out RFC 4122 is mentioned in the WiX source code here: Implementation of RFC 4122 - A Universally Unique Identifier (UUID) URN Namespace (one more).


Various GUIDs: All GUIDs in the package must be unique - of course. Component GUIDs should be stable across releases if the file still installs to the same location (why?). The Package GUID should always be new (since it identifies a unique MSI file). The Product Code must be changed when appropriate (for minor upgrades you must use the same product code in the new release) and the Upgrade Code normally stays the same across releases to identify related products / installers. Advanced Installer on GUIDs and an old answer of mine on the same.

Registry Format: Windows Installer requires GUIDs in "registry format" and ALL UPPERCASE LETTERS (see MSI SDK). Below is an illustration using the Create GUID tool from the Visual Studio Tools menu:

Create GUID

WiX Toolset: The WiX Toolset features "GUID auto-magic" and will auto-translate GUIDs found in incorrect formats in your WiX XML markup files to the correct format used inside the compiled MSI.

WiX quick start links.


Links:

Related