Bad Mis file

G

Gary Setter

Hi,
I'm trying to make a C++ version of the WiX Msi creation tool. I made my
first Msi file, attempted to install it, and received the following error
log in my temp directory.

The installer has encountered an unexpected error installing this package.
This may indicate a problem with this package. The error code is 2235. The
arguments are: , State, SELECT
`File`.`FileName`,`Version`,`File`.`State`,`File`.`Attributes`,`TempAttribut
es`,`File`.`File`,`File`.`FileSize`,`Language`,`Sequence`, `Directory_`,
`Installed`,`FileAction`.`Action`,`File`.`Component_`,`FileAction`.`ForceLoc
alFiles`, `ComponentId` FROM `File`,`FileAction` WHERE
`File`.`File`=`FileAction`.`File` ORDER BY `Sequence`, `Directory_`
=== Logging stopped: 3/23/07 20:03:51 ===

The doc for error 2235 is:

Database: [2]. Column '[3]' not present or ambiguous in SQL query: [4]

Which I take to mean that State is not column of the File table. The MSDN
doc for the File table is in sync with what I'm importing into the Msi file
and there is no State column.

So I don't know what to do. I'm zipping up my files including the Xml source
for, the Msi file and the Idt files that where generated and imported into
the Msi file. If any kind person would download it and point out my flaw, I
would greatly appreciate it. Alternatively, are there any free tools that I
could use to expose the flaw myself?

The zip file is:
home.att.net/~setterg/Badmsi.zip
 
M

mgama

Wow. That's quite a project you've got going there. Congratulations on
everything you've done so far. After building the XML file with the real
WiX binaries, and then comparing it with your MSI file, I found that the
InstallExecuteSequence table was missing several actions which I believe are
required. After copying them from the WiX generated MSI into your MSI file,
it worked.

Here are some other things you may want to investigate:

It looks like a few of your table column types are incorrectly. After
exporting the schema.msi tables (you can find the MSI in the Platform SDK or
Windows SDK), and windiffing them against yours, here at the differences
that I found:

File table:
Column: Sequence
Type:
Yours> i4
Schema> i2

Media table:
Column: LastSequence
Type:
Yours> i4
Schema> i2

Property table:
Column: Value
Type:
Yours> l255
Schema> l0

While yours works (after I added the additional InstallExecuteSequence
entries), the differing column types could potentially cause problems down
the road. One such problem that you may encounter is in merging a MSM which
is authored using the correct schema.

If you run the MSI file through msiinfo.exe (also included in the Platform
SDK or Windows SDK), and compare the results with a WiX generated MSI, you
will find that the authoring application name string is displaying some
invalid text.

--Mike


Gary Setter said:
Hi,
I'm trying to make a C++ version of the WiX Msi creation tool. I made my
first Msi file, attempted to install it, and received the following error
log in my temp directory.

The installer has encountered an unexpected error installing this package.
This may indicate a problem with this package. The error code is 2235. The
arguments are: , State, SELECT
`File`.`FileName`,`Version`,`File`.`State`,`File`.`Attributes`,`TempAttribut
es`,`File`.`File`,`File`.`FileSize`,`Language`,`Sequence`, `Directory_`,
`Installed`,`FileAction`.`Action`,`File`.`Component_`,`FileAction`.`ForceLoc
alFiles`, `ComponentId` FROM `File`,`FileAction` WHERE
`File`.`File`=`FileAction`.`File` ORDER BY `Sequence`, `Directory_`
=== Logging stopped: 3/23/07 20:03:51 ===

The doc for error 2235 is:

Database: [2]. Column '[3]' not present or ambiguous in SQL query: [4]

Which I take to mean that State is not column of the File table. The MSDN
doc for the File table is in sync with what I'm importing into the Msi
file
and there is no State column.

So I don't know what to do. I'm zipping up my files including the Xml
source
for, the Msi file and the Idt files that where generated and imported into
the Msi file. If any kind person would download it and point out my flaw,
I
would greatly appreciate it. Alternatively, are there any free tools that
I
could use to expose the flaw myself?

The zip file is:
home.att.net/~setterg/Badmsi.zip
 
G

Gary Setter

<snip>

Hello Mike,
Thank you for taking a look at my Msi and pointing out its flaws. I fixed
the InstallExecuteSequence and the _SummaryInformation problems and it looks
much better. I'd like to find out why the WiX tables.xml file has shows
those sequence numbers as 32 bit vs. 16 bit values.

Any suggestions on what to call this project? WixCee, Install42,
HobitInstall?

Again thanks,
Gary
 
G

Gary Setter

Phil Wilson said:
Have you thought about contributing to Wix? It's open source.
Hi Phil,

That was the plan from the beginning. The only hang up is how far to go
before uploading it. For example, I have no need for the extension mechanism
for the compiler and preprocessor. I have no need for it, I don't know what
to do with it, and it would seem reckless on my part to release a project
that that left it untested.

On the other hand, if I know someone would take a look at it, I would upload
it to sourceforge fairly soon.

What does the community want? A C++ version of WiX?
Gary
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top