\
Tips and Tricks
Tools
MSIDIFF.VBS
Sample MsiDiff Output - comcat.msm (merge module)
Sample MsiDiff Output - comcat.msm (merge module) |
The following command was used to dump "comcat.msm"
(the "_Validation" table was ignored):
cscript msidiff.vbs "Merge Modules\comcat.msm" -_Validation > comcat.txt
The dumped merge module follows:
Microsoft (R) Windows Script Host Version 5.812
Copyright (C) Microsoft Corporation. All rights reserved.
; []--------------------------------------------------------------[]
; | MSIDIFF.VBS v08.233: Dumps MSI differences in "MakeMsi" format |
; | (C)opyright Dennis Bareis 2003-2008. All rights reserved. |
; | http://dennisbareis.com/index.htm |
; []--------------------------------------------------------------[]
;======================================================================
;===========================[ DUMP ]===================================
;======================================================================
; The following paths may need to be modified depending on where the
; script is located (generated).
; You may also wish to make some of the hard coded values generic so
; that the script will work for any MSI or uses different values, in
; this case you may wish to use PPWIZARD's "/define" switch to
; pass values as a PPWIZARD macro (via the command line).
; The environment is another easy option.
;
; READING THIS OUTPUT
; ~~~~~~~~~~~~~~~~~~~
; A Windows Installer file is a form of SQL database and so
; contains SQL table and rows.
; The SQL is displayed in the form required by MAKEMSI to create
; the file's SQL tables and rows.
;
; DUMPING
; ~~~~~~~
; FILE: Merge Modules\comcat.msm
; SIZE: 19,456
; MD5: 58A0732F-492E2CE3-71AB6B58-8E4E2C64
;
; TABLES
; ~~~~~~
; INCLUDE :
; EXCLUDE : _Validation
;======================================================================
#include "OpenMsi.MMH"
<$Msi 'Merge Modules\comcat.msm' CREATE='Y'>
<$Table "ModuleSignature">
<$TableCreate>
#(
<$Row
ModuleID="COMCAT.3207D1B0_80E5_11D2_B95D_006097C4DE24"
Language="0"
Version="4.71.1460.1"
>
#)
<$/Table>
<$Table "FeatureComponents">
<$TableCreate>
<$/Table>
<$Table "Directory">
<$TableCreate>
#(
<$Row
Directory="MS.3207D1B0_80E5_11D2_B95D_006097C4DE24"
Directory_Parent="Redist.3207D1B0_80E5_11D2_B95D_006097C4DE24"
DefaultDir=".:MS"
>
#)
#(
<$Row
Directory="Redist.3207D1B0_80E5_11D2_B95D_006097C4DE24"
Directory_Parent="SystemFolder"
DefaultDir=".:Redist"
>
#)
#(
<$Row
Directory="System.3207D1B0_80E5_11D2_B95D_006097C4DE24"
Directory_Parent="MS.3207D1B0_80E5_11D2_B95D_006097C4DE24"
DefaultDir=".:System"
>
#)
#(
<$Row
Directory="SystemFolder"
Directory_Parent="TARGETDIR"
DefaultDir="."
>
#)
#(
<$Row
Directory="TARGETDIR"
Directory_Parent=""
DefaultDir="SourceDir"
>
#)
<$/Table>
<$Table "File">
<$TableCreate>
#(
<$Row
File="Global_Controls_COMCATDLL_f0.3207D1B0_80E5_11D2_B95D_006097C4DE24"
Component_="Global_Controls_COMCATDLL.3207D1B0_80E5_11D2_B95D_006097C4DE24"
FileName="comcat.dll"
FileSize="22288"
Version="4.71.1460.1"
Language="1033"
Attributes="0"
Sequence="1"
>
#)
<$/Table>
<$Table "Registry">
<$TableCreate>
#(
<$Row
Registry="Global_Controls_COMCATDLL_r0.3207D1B0_80E5_11D2_B95D_006097C4DE24"
Root="0"
Key="CLSID\{0002E005-0000-0000-C000-000000000046}\InprocServer32"
Name="ThreadingModel"
Value="Both"
Component_="Global_Controls_COMCATDLL.3207D1B0_80E5_11D2_B95D_006097C4DE24"
>
#)
#(
<$Row
Registry="Global_Controls_COMCATDLL_r1.3207D1B0_80E5_11D2_B95D_006097C4DE24"
Root="0"
Key="Component Categories"
Name="+"
Value=""
Component_="Global_Controls_COMCATDLL.3207D1B0_80E5_11D2_B95D_006097C4DE24"
>
#)
#(
<$Row
Registry="Global_Controls_COMCATDLL_r2.3207D1B0_80E5_11D2_B95D_006097C4DE24"
Root="0"
Key="Component Categories\{40FC6ED3-2438-11CF-A3DB-080036F12502}"
Name="409"
Value="Embeddable Objects"
Component_="Global_Controls_COMCATDLL.3207D1B0_80E5_11D2_B95D_006097C4DE24"
>
#)
#(
<$Row
Registry="Global_Controls_COMCATDLL_r3.3207D1B0_80E5_11D2_B95D_006097C4DE24"
Root="0"
Key="Component Categories\{40FC6ED4-2438-11CF-A3DB-080036F12502}"
Name="409"
Value="Controls"
Component_="Global_Controls_COMCATDLL.3207D1B0_80E5_11D2_B95D_006097C4DE24"
>
#)
#(
<$Row
Registry="Global_Controls_COMCATDLL_r4.3207D1B0_80E5_11D2_B95D_006097C4DE24"
Root="0"
Key="Component Categories\{40FC6ED5-2438-11CF-A3DB-080036F12502}"
Name="409"
Value="Automation Objects"
Component_="Global_Controls_COMCATDLL.3207D1B0_80E5_11D2_B95D_006097C4DE24"
>
#)
#(
<$Row
Registry="Global_Controls_COMCATDLL_r5.3207D1B0_80E5_11D2_B95D_006097C4DE24"
Root="0"
Key="Component Categories\{40FC6ED8-2438-11CF-A3DB-080036F12502}"
Name="409"
Value="Document Objects"
Component_="Global_Controls_COMCATDLL.3207D1B0_80E5_11D2_B95D_006097C4DE24"
>
#)
#(
<$Row
Registry="Global_Controls_COMCATDLL_r6.3207D1B0_80E5_11D2_B95D_006097C4DE24"
Root="0"
Key="Component Categories\{40FC6ED9-2438-11CF-A3DB-080036F12502}"
Name="409"
Value="_Printable Objects"
Component_="Global_Controls_COMCATDLL.3207D1B0_80E5_11D2_B95D_006097C4DE24"
>
#)
<$/Table>
<$Table "Extension">
<$TableCreate>
<$/Table>
<$Table "MIME">
<$TableCreate>
<$/Table>
<$Table "Class">
<$TableCreate>
#(
<$Row
CLSID="{0002E005-0000-0000-C000-000000000046}"
Context="InprocServer32"
Component_="Global_Controls_COMCATDLL.3207D1B0_80E5_11D2_B95D_006097C4DE24"
ProgId_Default=""
Description="Component Categories Manager"
AppId_=""
FileTypeMask=""
Icon_=""
IconIndex=""
DefInprocHandler=""
Argument=""
Feature_="{00000000-0000-0000-0000-000000000000}"
Attributes=""
>
#)
<$/Table>
<$Table "ProgId">
<$TableCreate>
<$/Table>
<$Table "Verb">
<$TableCreate>
<$/Table>
<$Table "Component">
<$TableCreate>
#(
<$Row
Component="Global_Controls_COMCATDLL.3207D1B0_80E5_11D2_B95D_006097C4DE24"
ComponentId="{3207D1B1-80E5-11D2-B95D-006097C4DE24}"
Directory_="System.3207D1B0_80E5_11D2_B95D_006097C4DE24"
Attributes="24"
Condition=""
KeyPath="Global_Controls_COMCATDLL_f0.3207D1B0_80E5_11D2_B95D_006097C4DE24"
>
#)
<$/Table>
<$Table "ModuleComponents">
<$TableCreate>
#(
<$Row
Component="Global_Controls_COMCATDLL.3207D1B0_80E5_11D2_B95D_006097C4DE24"
ModuleID="COMCAT.3207D1B0_80E5_11D2_B95D_006097C4DE24"
Language="0"
>
#)
<$/Table>
<$Summary "CodePage" Value="1252">
<$Summary "TITLE" Value="Merge Module">
<$Summary "SUBJECT" Value="Microsoft Component Category Manager Library">
<$Summary "KEYWORDS" Value="MergeModule, MSI, Database">
<$Summary "COMMENTS" Value="This redist pack contains the logic, files, and registration information to install the Microsoft Component Category Manager Library.">
<$Summary "TEMPLATE" Value="Intel;0">
<$Summary "PackageCode" Value="{3207D1B0-80E5-11D2-B95D-006097C4DE24}">
<$Summary "CREATE_DTM" Value='cdate("31/05/2000 4:27:07 AM")'>
<$Summary "LastSave_DTM" Value='cdate("31/05/2000 4:27:07 AM")'>
<$Summary "MsiSchema" Value="110">
<$Summary "SourceType" Value="2">
<$Summary "AppName" Value="Orca">
<$Summary "SECURITY" Value="1">
;--- Tables Excluded : _Validation
<$/Msi>