Windows Installer (and by extension, tools that use/depend on it, such as
MsiMsp.exe/PatchWiz.dll & the WiX toolset) use the published versioning
rules published on MSDN. Those state that when FileVersion (aka
AssemblyFileVersion for those building managed modules/assemblies) exists in
a binary then that version and any language setting similarly set in the
native version resource (which is where AssemblyFileVersion is surfaced) are
the only things used to compare two files. "Unversioned" files are treated
differently, and by default a versioned file always updates a non-versioned
one.

The above is IMHO part of the reason that AssembyFileVersion and
AssemblyVersion are two separate values: if you change the content of the
assembly but require that other assemblies that bind to it will still bind,
you maintain the AssemblyVersion and rev the AssemblyFileVersion.
Conversely, if you change the interface or otherwise require a new binding,
you change both versions.

-Blair

-----Original Message-----
From: Christoph Vollmer [mailto:christoph.voll...@emendo.co.nz] 
Sent: Monday, May 16, 2011 10:48 PM
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] Creating patch / AssemblyFileVersion

Hi,

Is MSIMSP looking only at the AssemblyFileVersion of the files? I get a
patch that does not patching when the AssemblyFileVersion of original
and patched version are the same. Install log says for the most files
that only have new AssemblyVersion:
"MSI (s) (88:3C) [16:44:59:719]: The file represented by File table key
'ASSEMBLY.dll.AAAAAAA' has no eligible binary patches"
I did a change in one file to have something obvious. It says:
"...
MSI (s) (88:3C) [16:44:59:750]: Activating binary patch with sequence
10042 for file key EXECUTABLE.exe.AAAA
MSI (s) (88:3C) [16:44:59:750]: The file represented by File table key
EXECUTABLE.exe.AAAA' will be updated using the last binary patch and the
file on disk (if possible).
MSI (s) (88:3C) [16:44:59:750]: Chain for EXECUTABLE.exe. AAAA  starts
with the native source file.
MSI (s) (88:3C) [16:44:59:750]: Activating binary patch with sequence
10042 for file key EXECUTABLE.exe.AAAA
MSI (s) (88:3C) [16:44:59:750]: FALLBACK: The file represented by File
table key EXECUTABLE.exe.AAAA' will be updated using a chain of baseline
patches.
...
MSI (s) (88:3C) [16:44:59:763]: Baseline: EXECUTABLE.exe.AAAA not
touched in this transaction, verification required.
MSI (s) (88:3C) [16:44:59:763]: Baseline: Existing file
EXECUTABLE.exe.AAAA matches baseline from patch Native.
MSI (s) (88:3C) [16:44:59:763]: Caching EXECUTABLE.exe.AAAA from
C:\Program Files (x86)\COMPANY\ EXECUTABLE.exe for baseline 0
..."
The files does not get changed, although I really made a change to it.
Is there somewhere a thorough explanation how MSIMSP determines the
files to patch?
Thanks,
  Christoph

----------------------------------------------------------------------------
--
Achieve unprecedented app performance and reliability
What every C/C++ and Fortran developer should know.
Learn how Intel has extended the reach of its next-generation tools
to help boost performance applications - inlcuding clusters.
http://p.sf.net/sfu/intel-dev2devmay
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


------------------------------------------------------------------------------
Achieve unprecedented app performance and reliability
What every C/C++ and Fortran developer should know.
Learn how Intel has extended the reach of its next-generation tools
to help boost performance applications - inlcuding clusters.
http://p.sf.net/sfu/intel-dev2devmay
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to