[wix-users] Basic Questions on WiX

Christopher Painter chrpai at iswix.com
Wed Oct 4 14:17:41 PDT 2017


Rob or Bob could probably answer what they were thinking but to me it probably went something like this.

WiX source code can be used to create different types of windows installer artifacts:


Merge Module



Bundle (came later)

Of these 5 primary first class citizens, only two of them had need for the Package element.  So therefore it likely made sense to make the Package element a child element only where it was needed.

#2 I'm a 1033 guy myself so I can't really give much input here.  I have very rarely delved into localization.

#3  Please see: https://msdn.microsoft.com/en-us/library/windows/desktop/aa370568(v=vs.85).aspx

#4 A string in one of several compatible GUID formats but a GUID none the less.

#5  The compiler transforms them into the correct format.  You can see this by editing the built MSI using ORCA.

#6  IMO you should download and install IsWiX and use the project templates instead. :)   (I'm the author)  See:


My project templates and graphical designers really make coming up to speed a lot easier.  If you out grow them  you can stop using them or extend them using fragments and other constructs.  Keep it simple where it's simple and get more complicated where you need it.

From: wix-users <wix-users-bounces at lists.wixtoolset.org> on behalf of Blair Murri via wix-users <wix-users at lists.wixtoolset.org>
Sent: Wednesday, October 4, 2017 1:33 PM
To: Ven H via wix-users
Cc: Blair Murri
Subject: Re: [wix-users] Basic Questions on WiX

  1.  Packages can contain only one product, yet over time a single product can be associated with several packages.
  2.  Decimal implementation of https://msdn.microsoft.com/en-us/library/windows/desktop/dd317752%28v=vs.85%29.aspx. Note that MSI does not support Unicode, although the CodePage attribute can sometimes work with UTF-8, with several known issues.
Code Pages (Windows) - msdn.microsoft.com<https://msdn.microsoft.com/en-us/library/windows/desktop/dd317752%28v=vs.85%29.aspx>
Most applications written today handle character data primarily as Unicode, using the UTF-16 encoding.

  3.  The Package/@Id value becomes the PackageCode property. If that value is ever repeated in more than one package, MSI may either ignore your package file or error out (usually in strange ad mysterious ways). MSFT requires that PackageCose values always be unique.

In general, any GUID that the toolkit might possibly generate safety for you will accept a “*” (indicating that auto-generated is preferred). If you will not be using minor upgrade/small update packages (which, honestly, are rarely recommended, unless patch packages are absolutely required) I always recommend that you use “*” for your GUIDs everywhere you can.

  1.  What any given Id attribute represents depends on the element that contains it. Please refer to the documentation for each instance.
  2.  MSI requires that all GUIDs it uses be all uppercase. Many toolsets, including WiX, will silently enforce that on your behalf. However, if you use a GUID in a conditional, it won't be converted for you by WiX, so the recommendation prevents errors resulting from copy-paste actions.
  3.  Project templates are used to create MSI packages. Setup templates create Bootstrapper packages.

Blair Murri

Sent from my Windows 10 phone

From: Ven H via wix-users<mailto:wix-users at lists.wixtoolset.org>
Sent: Tuesday, October 3, 2017 9:55 PM
To: WiX Toolset Users Mailing List<mailto:wix-users at lists.wixtoolset.org>
Cc: Ven H<mailto:venh.123 at gmail.com>
Subject: [wix-users] Basic Questions on WiX


I am very new to WiX and trying to learn and implement. I have some basic
(may be silly for some people) questions. Can anyone please answer them?
Here are they, to begin with.

1. If Product element represents the application for which msi is created
and Package element refers to the actual package or msi, package element
should be the parent and product element the child. But here it is the
other way. Can you please explain my gap in understanding?

2. I am still not completely able to understand the attributes like
CodePage and SummaryCodePage from the documentation. Can anyone please
explain this clearly?

3. The documentation in FireGiant says Package ID has to be different for
every package. I didn't get this. Even if I upgrade the MSI, still it has
to have a new Guid everytime? Also, as per the documentation in FireGiant,
PackageID has been marked as * which means it will be auto generated
everytime, whereas when we create a Setup Project in Visual Studio and
observe the Product.wxs file, Product ID has been marked as *. Can anyone
please explain this?

4. In normal scenarios, Id will represent a Guid, where as in WiX, it
represents a normal string. It is confusing. Can anyone please explain this?

5. The FireGiant documentation says Guids have to be in uppercase, whereas
the Visual Studio Setup Project has Guid in lower case. Which is correct?

6. In Visual Studio Project templates, there are both Setup Project and WiX
Project templates? Which one should be used to create an MSI and what is
the use of the other?


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