[wix-users] Creating patches with WiX
Daniel Żołopa
daniel.zolopa at gmail.com
Wed Aug 19 08:55:41 PDT 2020
Another option is using pyro for msp creation. But it requires wixpdb files
from "old installation".
Workaround is described here:
https://furotmark.github.io/Creating-A-Wix-Patch-From-MSI/
Please remember that "msp" is not able to remove components (files registry
etc.). MSP can only add or change elements.
--
danz
śr., 19 sie 2020 o 14:36 Vladimir Kolobkov via wix-users <
wix-users at lists.wixtoolset.org> napisał(a):
> Hi Wim,
>
> Patch can be created only between two msi packages. The original one, which
> you want to upgrade. And the msi with changes which you want to provide.
> The product code should be the same for both msi. Files should be in the
> same components with the same id and "KeyPath="yes"" also you have to
> increase the assembly version for .net assemblies.
> Next you have to create patch.wxs something like this:
> <?xml version="1.0" encoding="utf-8"?>
> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
> <PatchCreation
> Id="<%Guid of patch%>"
> CleanWorkingFolder="yes"
> OutputPath="patch.pcp"
> WholeFilesOnly="yes"
> >
>
> <PatchInformation
> Description="<%%>"
> Comments="<%%>"
> ShortNames="no"
> Languages="1033"
> Compressed="yes"
> Manufacturer="<%%>"/>
>
> <PatchMetadata
> AllowRemoval="yes"
> Description="<%%>"
> ManufacturerName="<%%>"
> TargetProductName="<%%>"
> MoreInfoURL="<%%>"
> Classification="Update"
> DisplayName="<%%>"/>
>
> <Family DiskId="5000"
> MediaSrcProp="Sample"
> Name="Sample"
> SequenceStart="5000">
> <UpgradeImage SourceFile="<%path to extracted msi(new one) in admin
> folder%>" Id="SampleUpgrade">
> <TargetImage SourceFile="<%path to extracted msi(the old one) in
> admin folder%>" Order="2"
> Id="SampleTarget" IgnoreMissingFiles="no" />
> </UpgradeImage>
> </Family>
>
> <PatchSequence PatchFamily="<%patch family name%>"
> Sequence="<%sequence%>"
> Supersede="yes" />
>
> </PatchCreation>
> </Wix>
>
> To create patch execute next commands:
> msiexec /a "<%path to msi(old one)%>" /qb targetdir="<%path to extracted
> msi(old one) in my case admin subfolder%>"
> msiexec /a "<%path to msi(new one)%>" /qb targetdir="<%path to extracted
> msi(new one) in my case admin subfolder%>"
>
> "C:\Program Files (x86)\WiX Toolset v3.11\bin\candle.exe" "<%path to
> Patch.wxs%>" -out "<%path to Patch.wixobj%>"
>
> "C:\Program Files (x86)\WiX Toolset v3.11\bin\light.exe" "<%path to
> Patch.wixobj%>" -out "<%path to Patch.pcp%>"
>
> "C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x86\MsiMsp.exe" -s
> "<%path to Patch.pcp%>" -p "<%path to Patch.msp%>" -l "<%path to
> Patch.log%>"
>
> MsiMsp.exe can be found in the Windows SDK.
>
> Best regards,
> Vladimir Kolobkov
>
>
> On Wed, 19 Aug 2020 at 10:51, Wim Brosens via wix-users <
> wix-users at lists.wixtoolset.org> wrote:
>
> > We have a .Net application with thousands of dlls, files, ...
> > We created a large WiX solution to create an msi for the installation of
> > this product.
> >
> > Can I create a WiX patch (msp) project for one 1 (or 2) of the files in
> the
> > msi, without creating a whole new msi for the application ? And how
> should
> > I do this ?
> >
> > In the WiX documentation I found only a patch solution with pyro, needing
> > to build a new MSI and creating a patch based upon the diff of the two
> > msi's, which is not suitable for us because of the long build time of the
> > WiX project ...
> >
> > Kind regards,
> > Wim Brosens
> >
> > ____________________________________________________________________
> > WiX Toolset Users Mailing List provided by FireGiant
> > http://www.firegiant.com/
> >
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant
> http://www.firegiant.com/
>
More information about the wix-users
mailing list