Hello, 

Yes I am using 3.7 for both installers, and the patch. There seems to be a bug 
in 3.7 versus 3.5, but it turned out that 3.5 simply ignored the fact that the 
transform was empty, so it generated an empty patch. 

This does not alter the fact though, that I am unable to make this patch 
mechanism work. 

I have a fairly complex installer, which hundreds of files, windows services, 
moving existing files and one or two custom actions. 
I have built two versions of the installer, with the only real difference being 
the version nummer (1.2.0 and 1.2.5). 

I have then created a patch.wxs:
============================ CODE START ====================================
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi";>
    <?include ..\ScanXNETSetup\BuildVariables.wxi ?>
    <Patch AllowRemoval="yes" Classification="Update" 
Manufacturer="$(var.Manufacturer)" Description="$(var.Description)" 
DisplayName="$(var.Description) ($(var.CurVersion))">
        <Media Id="5000" Cabinet="Patch.cab">
            <PatchBaseline Id="Patch" />
        </Media>
        <PatchFamily Id="ApplicationPatch" Supersede="yes" 
Version="$(var.CurVersion)">
            <ComponentRef Id="ComponentCommonExtensions" />
            <ComponentRef Id="ComponentMainClient" />
        </PatchFamily>
    </Patch>
</Wix>
============================ CODE END ====================================

 and a batch script to run it

============================ CODE START ====================================
@echo off
set wixdir=c:\Program Files (x86)\WiX Toolset v3.7\
set 
oldmsi="..\..\..\..\..\Build\Debug\OldInstaller\x86\en-us\Application.wixpdb"
set newmsi="..\..\..\..\..\Build\Debug\Installer\x86\en-us\Application.wixpdb"
set output=..\..\..\..\..\Build\Debug\Patch\

del /f /q "%output%*.*"

"%wixdir%bin\torch.exe" -p -xi %oldmsi% %newmsi% -v -out "%output%diff.wixmst"
"%wixdir%bin\candle.exe" -v Patch.wxs
"%wixdir%bin\Light.exe" -v Patch.wixobj -out "%output%patch.wixmsp"
"%wixdir%bin\pyro.exe" -v "%output%patch.wixmsp" -out "%output%patch.msp" -t 
ApplicationPatch "%output%diff.wixmst"

============================ CODE END ====================================

But I get errors every time, regardless of what I do. This generates the 
following output: 

pyro.exe : error PYRO0252 : No valid transforms were provided to attach to the 
patch. Check to make sure the transforms you passed on the command line have a 
matching baseline authored in the patch. Also, make sure there are differences 
between your target and upgrade.

I have a feeling that I have an ID mismatch somewhere, but I cannot figure out 
where. 


/Thomas


> -----Original Message-----
> From: Rob Mensching [mailto:r...@robmensching.com]
> Sent: 9. maj 2013 16:54
> To: General discussion for Windows Installer XML toolset.
> Subject: Re: [WiX-users] Creating patches
> 
> Are you using a different version of the WiX toolset to patch than what was
> used to build the MSIs? That's not technically supported since there are a lot
> of fine details that can go awry.  However, that error message is not terribly
> helpful and a bug certainly would in order for it.
> 
> 
> On Tue, May 7, 2013 at 2:29 AM, Thomas Due <t...@scanvaegt.dk> wrote:
> 
> > Hello,
> >
> > I am still looking for an answer to this problem. I have two versions
> > of my MSI installer, the only true difference is the version number.
> > I have a patch.wxs script which identitifies a couple of components
> > which are supposedly changed. In reality no file have been changed,
> > except for their version number.
> >
> > When I execute the tools sequence described in Nick Ramirez' book and
> > the WiX manual, nothing constructive happens.
> >
> > Both Torch and Pyro gives me errors, shown below.
> >
> > I am pretty much clueless as to what I am doing wrong, mainly because
> > neither the manual or the book properly explains WHAT I need to do, and
> WHY.
> > Mainly they just show me HOW.
> >
> > Is any able to help get past this issue?
> >
> > /Thomas Due
> >
> >
> > > -----Original Message-----
> > > From: Thomas Due [mailto:t...@scanvaegt.dk]
> > > Sent: 3. maj 2013 09:40
> > > To: General discussion for Windows Installer XML toolset.
> > > Subject: Re: [WiX-users] Creating patches
> > >
> > > I have now modified my build script to use a locally build msi
> > > installer
> > and
> > > comparing it with a version build on my build server yesterday.
> > > There is no practical difference between the two msi files except
> > > the
> > version
> > > numbers.
> > >
> > > Is that why I keep getting errors?
> > >
> > > I get the following error from Torch:
> > > error TRCH0279 : The table definition of 'WixVariable' in the target
> > database
> > > does not match the table definition in the updated database. A
> > > transform requires that the target database schema match the updated
> > > database schema.
> > >
> > > And I get this from Pyro:
> > > Updating file information.
> > > Creating cabinet files.
> > > There will be '8' threads used to produce CAB files.
> > > MinorUpdate\Patch.wxs(13) : warning PYRO1079 : The cabinet Patch.cab'
> > > does not contain any files.  If this patch contains no files, this
> > warning can
> > > likely be safely ignored.  Otherwise, try passing -p to torch.exe
> > > when
> > first
> > > building the transforms, or add a ComponentRef to your PatchFamily
> > > authoring to pull changed files into the cabinet.
> > > Creating cabinet 'AppData\Local\Temp\q0qw3fj2\#Patch.cab'.
> > > Generating database.
> > > pyro.exe : error PYRO0001 : Cannot set column 'Protocol' with value
> > > 1 because it is less than the minimum allowed value for this column, 6.
> > >
> > > Exception Type: System.InvalidOperationException
> > >
> > > Stack Trace:
> > >    at
> > > Microsoft.Tools.WindowsInstallerXml.ColumnDefinition.ValidateValue(O
> > > bjec
> > > t value)
> > >    at Microsoft.Tools.WindowsInstallerXml.Row.set_Item(Int32 field,
> > Object
> > > value)
> > >    at
> > > Microsoft.Tools.WindowsInstallerXml.Binder.BindTransform(Output
> > > transform, String transformFile)
> > >    at
> > > Microsoft.Tools.WindowsInstallerXml.Binder.GenerateDatabase(Output
> > > output, String databaseFile, Boolean keepAddedColumns, Boolean
> > > useSubdirectory)
> > >    at Microsoft.Tools.WindowsInstallerXml.Binder.BindDatabase(Output
> > > output, String databaseFile)
> > >    at Microsoft.Tools.WindowsInstallerXml.Binder.Bind(Output output,
> > String
> > > file)
> > >    at Microsoft.Tools.WindowsInstallerXml.Tools.Pyro.Run(String[]
> > > args)
> > >
> > > Any help will be appreciated.
> > >
> > > /Thomas Due
> > >
> > >
> > > > -----Original Message-----
> > > > From: uni [mailto:unigauld...@gmail.com]
> > > > Sent: 2. maj 2013 12:07
> > > > To: General discussion for Windows Installer XML toolset.
> > > > Subject: Re: [WiX-users] Creating patches
> > > >
> > > > 于02 May 2013 17:31:10,Thomas Due写到:
> > > > > Hello,
> > > > >
> > > > > I am trying to grasp the concept of minor and small upgrades,
> > > > > but I am
> > > > having some trouble with getting it to work.
> > > > >
> > > > > First of all, it doesn't seem to work at all with 3.7.
> > > > > I have downgraded my WiX to 3.5, and there something happens at
> > > > > least,
> > > > but my msp seems to be empty when I examine it with instead
> > > > (http://www.instedit.com/).
> > > > >
> > > > > A bit about what I do:
> > > > > I have a fairly complex installer with a couple of hundred files
> > > > > total, divided
> > > > among 4 features. I build this with TeamCity, and I have two
> > > > separate installers (no real changes, except for the version
> > > > nummer -
> > > > 1.2.0.22679 and 1.2.5.22754). I imagine that this should be enough
> > > > to
> > > generate something.
> > > > >
> > > > > I have a build script, a simple batch file, which executes the
> > > > > four steps
> > > > described in both the WiX doc and Nick Ramirez' book.
> > > > >
> > > > > My patch.wxs then includes a couple of file components, as I
> > > > > want these
> > > > replaces (mind you, I am still in the testing phase, trying to
> > > > understand the concept).
> > > > >
> > > > > First my "build script":
> > > > > =======================================
> > > > > "%wixdir%bin\torch.exe" -p -xi %oldmsi% %newmsi% -v -out
> > > > > diff.wixmst "%wixdir%bin\candle.exe" -v Patch.wxs
> > > > > "%wixdir%bin\Light.exe" -v Patch.wixobj -out patch.wixmsp
> > > > > "%wixdir%bin\pyro.exe" -v "patch.wixmsp -out patch.msp -t Patch
> > > > > diff.wixmst
> > > > >
> > > > > %oldmsi% and %newmsi" are complete paths to the wixpdb files for
> > > > respectively old and new installer.
> > > > > Then my Patch.wsx:
> > > > > =======================================
> > > > > <?xml version="1.0" encoding="utf-8"?> <Wix
> > > > > xmlns="http://schemas.microsoft.com/wix/2006/wi"; >
> > > > >     <?include BuildVariables.wxi ?>
> > > > >     <Patch AllowRemoval="yes"
> > > > >            Classification="Update"
> > > > >            Manufacturer="$(var.Manufacturer)"
> > > > >            Description="Patch"
> > > > >            DisplayName="Patch $(var.CurVersion)">
> > > > >         <Media Id="1000" Cabinet="´Patch.cab" EmbedCab="yes">
> > > > >             <PatchBaseline Id="Patch" />
> > > > >         </Media>
> > > > >         <PatchFamily Id="ScanXNETPatchFamily"
> > > > >                      Version="$(var.CurVersion)"
> > > > >                      Supersede="yes">
> > > > >             <ComponentRef Id="ComponentCommonExtensions" />
> > > > >             <ComponentRef Id="ComponentMainClient"/>
> > > > >         </PatchFamily>
> > > > >     </Patch>
> > > > > </Wix>
> > > > >
> > > > > BuildVariables.wxi is simply a number of preprocessor variables,
> > > > > which is
> > > > shared with the installer project.
> > > > >
> > > > > Now, as I said, with 3.7 I get this result:
> > > > > Updating file information.
> > > > > Creating cabinet files.
> > > > > There will be '8' threads used to produce CAB files.
> > > > > Patch.wxs(20) : warning PYRO1079 : The cabinet 'ïPatch.cab' does
> > > > > not
> > > > contain any files.  If this patch contains no files, this warning
> > > > can likely be safely ignored.  Otherwise, try passing -p to
> > > > torch.exe when first building the transforms, or add a
> > > > ComponentRef to your PatchFamily authoring to pull changed files into
> the cabinet.
> > > > > Creating cabinet '\Local\Temp\kvov1bbk\#ïPatch.cab'.
> > > > > Generating database.
> > > > > diff.wixmst : error PYRO0227 : The transform being built did not
> > > > > contain any
> > > > differences so it could not be created.
> > > > >
> > > > > Which is probably an indication of what is actually wrong. With
> > > > > 3.5 I get an
> > > > empty msp.
> > > > >
> > > > > What am I doing wrong?
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > ----------------------------------------------------------------
> > > > > ----
> > > > > --
> > > > > -------- Introducing AppDynamics Lite, a free troubleshooting
> > > > > tool for Java/.NET Get 100% visibility into your production
> > > > > application - at no cost.
> > > > > Code-level diagnostics for performance bottlenecks with <2%
> > > > > overhead Download for free and get started troubleshooting in
> minutes.
> > > > > http://p.sf.net/sfu/appdyn_d2d_ap1
> > > > > _______________________________________________
> > > > > WiX-users mailing list
> > > > > WiX-users@lists.sourceforge.net
> > > > > https://lists.sourceforge.net/lists/listinfo/wix-users
> > > >
> > > > Sounds wixpdb files only contain infomation about where to find
> > > > the
> > files.
> > > > For example,
> > > > 1,You have a ".\a.txt" file,it's content is "old version".
> > > > 2,After you build the old version,"old.wixpdb" refer to ".\a.txt".
> > > > 3,You change the ".\a.txt"'s content to "new version".
> > > > 4,You build the new version,now "new.wixpdb" also refer to ".\a.txt".
> > > > 5,You use torch.exe to calculate the difference between the
> > "old.wixpdb"
> > > > and "new.wixpdb", they both refer to ".\a.txt" and the content is
> > > > "new version".
> > > >
> > > > Maybe you can put the old version files and new version files in
> > > > different directory and try.
> > > >
> >
> >
> > ----------------------------------------------------------------------
> > -------- Learn Graph Databases - Download FREE O'Reilly Book "Graph
> > Databases" is the definitive new guide to graph databases and their
> > applications. This 200-page book is written by three acclaimed leaders
> > in the field. The early access version is available now.
> > Download your free book today! http://p.sf.net/sfu/neotech_d2d_may
> > _______________________________________________
> > WiX-users mailing list
> > WiX-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/wix-users
> >

------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and 
their applications. This 200-page book is written by three acclaimed 
leaders in the field. The early access version is available now. 
Download your free book today! http://p.sf.net/sfu/neotech_d2d_may
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to