[wix-users] Basic Questions on WiX

Jason Beck mrbass21 at gmail.com
Wed Oct 4 09:15:16 PDT 2017

I'm newer to WiX myself, but I'll try to answer what I can. I also might
be wrong so be sure to double check me.

1. I don't really know the answer to this other than to offer what I
feel to be the reason.

Your Package GUID refers to a specific MSI file. It MUST change with
every single MSI file you create, regardless of if the contents of that
MSI are the same or not.

Your Product GUID should likely change every time. Remember, you could
have an x86 installer, an x86_64 installer, and English, French, Korean
versions of both architectures. So the Product must be different between
all these builds.

There are specific instances where you do not change your Product GUID.
These are when you intend on doing minor and patch updates instead of
major updates. I highly recommend you to not do these updates until
you've worked with WiX for a while. Major updates are the cleanest and
if you make a mistake with minor or patch updates, you can break things
in strange ways.

Your Upgrade GUID identifies the same product and (likely) never changes
for that product. This is how windows knows if your program exists on
the machine or not.

2. I'm not sure if you're asking what the Codepage is or what the
difference between Codepage and CodepageSummary is.

CodePage refers to what character set you're using in the installer.
Here's a list of them:

Since UTF-8 has spotty support, from what I've read *grumble grumble*,
and if you're using characters outside of ASCII, you'll need to change
the codepage so you don't get garbage characters displayed.

As for the difference between CodePage and CodePageSummary, I'm less
sure. Codepage defines the codepage used for inside the MSI installer
and the Summary is for the summary which is (apparently) distinct from
the installer. More info here:

3. Refer to 1. I think I describe it there. If not, you can ask for
clarification and I'll offer what I think is right.

4. The Windows Installer you produce is actually a database. You can
browse it by opening the package in Orca.exe. The id is almost always
the primary key for the item placed in the database in a specific table.
The GUID is used by the Windows installer when you do an installation to
find an item registered with the system.

So to clarify:
ID is used to uniquely identify an item in the MSI database

GUID is used to uniquely identify an item on the Windows system.

5. I've been told the same thing, and I don't have a concrete answer for
you. From what I've searched its supposed to be a standard everyone
follows because some searches used to be case sensitive. So the default
is USUALLY to have everything in upper case. I follow this standard, and
I'd advise you to do the same.

6. I'm not sure about this one. Let google be your guide. Or create both
and see what's different between them. My guess is for a medium/small
project, it won't be very different.

Also, please research components and component GUIDS and how they work
before you make the installer so you don't make someone angry when they
inherit the management of the project.

On 10/3/2017 11:55 PM, Ven H via wix-users wrote:
> Hi,
> 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?
> Regards,
> Venkatesh
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/

More information about the wix-users mailing list