Bug is Signiture table handling in msi 2.0??

  • Thread starter Thread starter Paul Schauble
  • Start date Start date
P

Paul Schauble

I have an entry in the Signature table that reads
Signature FileName MinVersion
AppComp vflags.dll 2.4.0.0
with supporting entries in the AppSearch and DrLocator table. The
vflags.dll with version 2.4.0.0 is in place.

When I run the installation, the dll is not found.

I change the Signature entry to
AppComp vflags.dll 2.3.100.100
and the installations find it.

The documentation for the Signiture table says that the file version
must be "at least equal" to the MinVersion value. But is looks like
there is a bug in MSI and, in fact, the file version must be strictly
greater than the MinVersion.

Is this a known bug? If so, how could I have found it? If not, how can I
report it?

Thanks,
++PLS
 
It's a known bug, at least it's known to some of us :) I have reported it to
Microsoft, but there is no official confirmation or knowledge base article
about it.

--
Stefan Krueger
Microsoft Windows Installer MVP

Please post your questions in the newsgroup or vist one of these web sites:

Windows Installer FAQ
http://www.msifaq.com - http://www.msifaq.de

InstallSite - Resources for Setup Developers
http://www.installsite.org
http://www.installsite.de (GERMAN)
 
Actually, the problem is the documentation isn't completely clear. The version
and the language column fields are taken together when determining whether or
not the file meets the Signature table criteria. At this time, there is no way
to tell the Installer to ignore the language of the file when searching for the
file. That's why if you want to "ignore" the language, you have to enter a
minimum version value that is slightly less than the actual version of the file
you are searching for.

If the file has an equal version to the value listed in the MinVersion column of
the Signature table but the language doesn't match, then the file does not fit
the Signature table's filter criteria. Leaving the language column as NULL
indicates a file that doesn't have a language. This is different from a file
that is language neutral (0) or for example English (1033).

The current version of the documentation of the Signature table that is
available online at MSDN <
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/signature_table.asp >
does discuss this behavior in the Remarks section. However, I'll admit that it
does appear to be buried and isn't all that clear.

From the docs:
The Signature table generally follows the Windows Installer File Versioning
Rules. Languages specified in the Languages column of the Signature table are
not evaluated unless the file versions are equivalent. The Languages column will
ensure that a file is of a particular language if it is of the requested
version.


The clarifications for the documentation have been provided to the doc writers,
although the timetable on when these will be available is unknown.

Hope this helps,
- Carolyn Napier
Microsoft Windows Installer Team


--
This posting is provided "AS IS" with no warranties, and confers no rights.
Please do not send email directly to this alias. This alias is for newsgroup
purposes only.
MSI FAQ:
<http://www.microsoft.com/windows2000/community/centers/management/msi_faq.mspx>
 
Oh dear...

I think it would be really useful to be able to ignore the language. For
instance if I'm lokking for a certain IE version on the target machine I
don't care about its language. And I guess this is the typical situation.

--
Stefan Krueger
Microsoft Windows Installer MVP

Please post your questions in the newsgroup or vist one of these web sites:

Windows Installer FAQ
http://www.msifaq.com - http://www.msifaq.de

InstallSite - Resources for Setup Developers
http://www.installsite.org
http://www.installsite.de (GERMAN)


Carolyn Napier said:
Actually, the problem is the documentation isn't completely clear. The version
and the language column fields are taken together when determining whether or
not the file meets the Signature table criteria. At this time, there is no way
to tell the Installer to ignore the language of the file when searching for the
file. That's why if you want to "ignore" the language, you have to enter a
minimum version value that is slightly less than the actual version of the file
you are searching for.

If the file has an equal version to the value listed in the MinVersion column of
the Signature table but the language doesn't match, then the file does not fit
the Signature table's filter criteria. Leaving the language column as NULL
indicates a file that doesn't have a language. This is different from a file
that is language neutral (0) or for example English (1033).

The current version of the documentation of the Signature table that is
available online at MSDN <
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/signature_table.asp >
 
I have forwarded this request onto the product team. Until then, to ignore the
language you would need to search for the minimum version that is slightly less
than what you are really searching for.

- Carolyn

--
This posting is provided "AS IS" with no warranties, and confers no rights.
Please do not send email directly to this alias. This alias is for newsgroup
purposes only.
MSI FAQ:
<http://www.microsoft.com/windows2000/community/centers/management/msi_faq.mspx>
 
Back
Top