Let's Code - WiX: tables.xml and a typo
Last week I fixed my oldest bug in WiX v3.11, the bad filenames bug. This week I'm going to continue to start with my oldest bug and grab a couple others that are related.
So I’m fixing #4812, #4813, #5270 and because I expect those to be easy, I’ll also fix #5438. To be honest, I expect it will take me longer to write this blog entry about my work than it will to do the actual work. Let’s see if I’m right. Let’s code!
Checkout
The first three issue are all bugs in tables.xml
.
It’s just a matter of figuring out which tables.xml
.
Quick refresher about tables.xml
.
The tables.xml
contains the table definitions
for the tables that end up in your MSI.
So wix.dll
has a very large tables.xml
file
that defines all the table defintions
defined by the MSI SDK.
Most of the WiX Extensions do as well.
So the first two issues are clearly in the IIS
WiX Extension and the third is part of the core
thus found in wix.dll
.
The last issue, #5438, is a typo in candle.exe.
Time to start coding.
git fetch upstream
git merge --ff --ff-only upstream/develop
git checkout -b 4812-4813-5270-5438-tables-typo
Commit
The first step was to look in the IIS Extension’s
tables.xml
at \src\ext\IIsExtension\wixext\data\
.
Search for “AppPool” and see:
<tableDefinition name="IIsAppPool" createSymbols="yes">
<columnDefinition name="AppPool" type="string" length="72"
primaryKey="yes" modularize="column"
category="identifier" description="Primary key, non-localized token for apppool"/>
<columnDefinition name="Name" type="string" length="72"
category="formatted" description="Name to be used for the IIs AppPool."/>
The bug is right. We have a formatted
column called Name
that is not set to to be modularized.
It makes me wonder why we don’t modularize formatted
columns
by default. Maybe something to solve in the future. For now
the fix is easy. Add modularize="property"
attribute.
The next bug, #4813, should have been trivial but the title
of the bug sent me looking at the IIsWebDirProperties
table.
Which has no Name
column. Eventually, I looked closer at
the text of the bug
and realized the issue
was in the IIsWebApplication
table.
To all you opening bugs. Help a developer out. Please take care and put accurate information in your bug reports.
Hopefully the guy in the next issue, #5270,
had his act together.
A couple nullable="yes"
attributes
in src\tools\wix\Data\tables.xml
and we’re done with that one.
So, let’s take a look at candle.cs
for too much
“sfdvital” and not enough “ss”.
That is also an easy and obvious fix.
And we’re done for tonight. 4 bugs lighter. If only the rest of my bugs would all be this easy.
git add src\ext\IIsExtension\wixext\data\tables.xml
git commit
> Properly modularize IIsAppPool Name column
>
> Fixes wixtoolset/issues#4812
git add src\ext\IIsExtension\wixext\data\tables.xml
git commit
> Properly modularize IIsAppPool Name column
>
> Fixes wixtoolset/issues#4813
git add src\tools\wix\data\tables.xml
git commit
> Properly set WixMerge columns nullable
>
> FileCompression and ConfigurationData should both be nullable.
>
> Fixes wixtoolset/issues#5270
git add src\tools\candle\candle.cs
git commit
> Properly set WixMerge columns nullable
>
> FileCompression and ConfigurationData should both be nullable.
>
> Fixes wixtoolset/issues#5270
Until next time! Keep coding. You know I am.