WiX - Painful at best

So I finally got WiX to create an installer for me after many hours of poor documentation, obscure errors and bizarre angle bracket syntax.

The latest error I have really annoyed me as there was no obvious indication what the error was and how to resolve it, which is really the purpose of this post. To share this so that others may benefit, and because my memory is so poor, I need to record it for later use :-)

Basically I got this:

candle.exe : error CNDL0001: Cannot set column 'Attributes' with value 239 because it is greater than the maximum allowed value for this column, 127.

Nice. I wont bore you with the vulgarities that I produced trying to decipher this message, but it ended up being the fact that I had put a <sql:sqlDatabase> server definition was inside a feature element rather than outside on its own.

So I had put this:

<sql:sqlDatabase Id="SqlDatabase" Server="[DATABASESERVERNAME]" Database="[DATABASENAME]" />

inside a <Component> tag.

Placing the <sql:sqlDatabase> tag back outside the <Component> tag fixed this issue.

Hope it saves others similar frustration.

4 Comments

  • I like WiX. The entry point is high but it gives you nearly unlimited possibilities.

  • The output is good, but its generally way too costly for smaller shops to devote time and resources to where human resources are limited. Its ok if you have a lot of time to spare, a dedicated install person or some such thing. Also, online help and support is not the best so resolution of issues is difficult and hard to justify in terms of business value.

    I am sure things will improve, but for now, its a very frustrating product to work with.

  • Give WixAware a go, it's not free but has a 30 day trial and will save you a lot of time.

  • We're not exactly a small shop, but we don't have a dedicated expert working on installer issues.
    After wresting with how we could use WIX for deploying databases (SQL/Oracle) as well as 400 DLLs and executables, we gave up. Creating an installer is easy enough, but then creating upgrade and patches gets hairy pretty fast. We ended up sticking with Installshield, which was already working for us for fresh installs and full upgrades. For patches, we're now using NSIS, which makes it considerably easier to write a patch. If it wasn't for our existing installshield investment, we'd probably go 100% NSIS, since it's far easier to use and doesn't require such tight per-assembly lifetime monitoring. It's not just WIX, but the underlying windows installer technology that's simply too complex for our needs.

Comments have been disabled for this content.