Hello all,

 

I'm working with Liam who previously asked some patch related questions. (
http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Patching-Using
-Purely-Wix-td6031594.html )

 

We've made progress, with the comments to Liam's post,  and by looking at
http://blogs.msdn.com/b/pmarcu/archive/2008/05/30/patching-something-you-did
nt-build-with-wix-using-wix-.aspx.

 

However we're still unable to successfully patch our installation.

 

We have two install packages: setup_32_unicode_new.msi and
setup_32_unicode_old.msi, there is only 1 file (dyalog.exe, which I've
changed from 6Mb to 15Mb) that is changed from old to new. Initially we're
just trying to create a patch that will install that one modified file.

 

Here's my patch xml:

 

<?xml version="1.0" encoding="UTF-8"?>

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi";>

                <!-- Path variables -->

    <Patch 

        AllowRemoval = "yes"

        Manufacturer = "Dyalog"

        DisplayName = "Dyalog APL 13.0 Patch"

        Description = "Dyalog APL 13.0 Patch"

        Classification = "Update"

        >

 

        <Media Id="5000" Cabinet="RTM.cab">

            <PatchBaseline Id="RTM"/>

        </Media>

 

        <PatchFamilyRef Id="Interpreter"/>

    </Patch>

                

                <Fragment>       

        <PatchFamily

                                                Id="Interpreter"

                                                Supersede="yes"

                                                Version="1.0.1.0">

                                <ComponentRef Id="dyalog.exe"/>

        </PatchFamily>

    </Fragment> 

</Wix>

 

I use the following script to make the patch file:

 

WIXDIR=c:/wix35/bin

$WIXDIR/candle Patch.wxs
$WIXDIR/light Patch.wixobj -out Patch/Patch.WixMsp

msiexec -passive -norestart -l* inst_old.log
TARGETDIR="c:\\tmp\\wix_patching\\dyalog\\inst_old"  -a
setup_32_unicode_old.msi
msiexec -passive -norestart -l* inst_new.log
TARGETDIR="c:\\tmp\\wix_patching\\dyalog\\inst_new"  -a
setup_32_unicode_new.msi

$WIXDIR/torch -v -p -xo -a inst_old/setup_32_unicode_old.msi
inst_new/setup_32_unicode_new.msi -out patch/diffs.wixmst
$WIXDIR/pyro -v Patch/Patch.WixMsp -out Patch/Patch.msp -t RTM
Patch/Diffs.wixmst

 

I've used msix (
http://blogs.msdn.com/b/heaths/archive/2006/04/07/571138.aspx ) to extract
the CAB from the MSP file and I can see that the only file in it is the
modified binary that I expect to see.

 

On a clean XP VM I install setup_32_unicode_old.msi, and then I apply the
patch. However dyalog.exe remains the old version.

If, however, I install setup_32_unicode_old.msi, then delete dyalog.exe, and
then apply the patch I do get the new version.

I've looked at the logs for the two applications of the patch, and the only
significant difference seems to be the installation of the file, which isn't
present unless I delete the file first:

 

(without deleting dyalog.exe first)

Action 14:28:51: InstallFiles. Copying new files

Action 14:28:51: WriteRegistryValues. Writing system registry values

 

(with deleting dyalog.exe first)

Action 14:37:36: InstallFiles. Copying new files

InstallFiles: File: dyalog.exe,  Directory: C:\Program Files\Dyalog\Dyalog
APL 13.0 Unicode\,  Size: 15731712

Action 14:37:37: WriteRegistryValues. Writing system registry values

 

What could we be doing wrong that prevents the installation of the new file
if the old one exists?

 

Many Thanks,

John

 

 

 

 

------------------------------------------------------------------------------
Free Software Download: Index, Search & Analyze Logs and other IT data in 
Real-Time with Splunk. Collect, index and harness all the fast moving IT data 
generated by your applications, servers and devices whether physical, virtual
or in the cloud. Deliver compliance at lower cost and gain new business 
insights. http://p.sf.net/sfu/splunk-dev2dev 
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to