> For example I want to be able to programmatically determine if a file is a
> merge module and not an MSI by looking at the tables or other properties it
> has, rather than looking at the file extension!
The page at [1] lists a number of tables that "only occur in
merge modules", and others that "cannot occur in a standard merge
module". By checking which tables are present, it should be
possible to detect whether a file is a merge module, unless it
has been incorrectly authored.
You could also check whether the _Streams table contains a
MergeModule.CABinet file [2], but I think that could in principle
result in false positives because the name is not reserved, and
perhaps even false negatives if the File table is empty.
References:
[1] Merge Module Database Tables [Windows Installer]
http://msdn.microsoft.com/library/en-us/msi/setup/merge_module_database_tables.asp
[2] MergeModule.CABinet [Windows Installer]
http://msdn.microsoft.com/library/en-us/msi/setup/mergemodule_cabinet.asp
"Julia Beresford" <JuliaBe...@discussions.microsoft.com> wrote in message
news:E3742F09-F5EE-4A32...@microsoft.com...
> Hi
>
> What are the fundamental things that make a merge module a merge module
> rather than an MSI?
>
> For example I want to be able to programmatically determine if a file is a
> merge module and not an MSI by looking at the tables or other properties it
> has, rather than looking at the file extension!
>
> Can someone help define what these determining factors would be?
>
> Many thanks.
>
> Julia.
>
> Checking for the ModuleComponents table has never let me down.
> If it's there then it's a merge module.
That is not a good idea. When a merge module is merged into an
installation package, the ModuleComponents table normally also
becomes part of the installation package.
thanks
Alan
(It's no excuse for my giving bad advice, but in our case the
files being testing are "source code" files for the Wise for
Windows Installer tool. They are basically the same database
format as MSI files are -- but don't contain ModuleComponents
unless they are sources for merge modules.)
"Kalle Olavi Niemitalo" <k...@iki.fi> wrote in message news:87ekbls...@Astalo.kon.iki.fi...