Re: [WiX-users] Applying a patch (.msp) doesn't increasethe product version
Can you verify this by producing a minimum test case ? Create an MSI with just 1 text file and an upgrade and a patch from that. It might help you narrow down what's going wrong. The .wixmst produced by torch is an xml file containing all the changes between the two inputs, even if they are not referenced by the patch wxs file. It might be worth looking through it for your text file name. It should be in there. -Original Message- From: Ulrich Proeller [mailto:ulr...@prosa.biz] Sent: 12 January 2012 09:34 To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Applying a patch (.msp) doesn't increasethe product version When examining the files with an administrative install, the files in the two .msi files are definitely different. When I change the file size of the text file, the file is included in the patch. But if the file size is the same as the file size of the original file, it isn't included into the patch. As far as I can see now, torch.exe does the following: 1. If a file has a version (.exe, .dll), that version is checked to determine if the file has changed. 2. If a file has no version, it is simply checked if the file size has changed. If the size is unchanged, the file is considered as unchanged. This appears to me to be a bug in torch.exe. I would try to find and fix this bug in torch.exe now as I really need to reliably create patches. Besides this, I think that in Wix 3.6 Beta, the patch creation is broken (torch.exe or pyro.exe). When I apply the 3.6 toolset to the same files which successfully created a patch file with WIX 3.5, I get an warning about an empty cabinet. -Ursprüngliche Nachricht- Von: Peter Shirtcliffe [mailto:pshirtcli...@sdl.com] Gesendet: Mittwoch, 11. Januar 2012 13:13 An: General discussion for Windows Installer XML toolset. Betreff: Re: [WiX-users] Applying a patch (.msp) doesn't increase the product version It all looks reasonable. I'd probably go back and examine the text file in the 2 MSIs that you're building the patch from. It could be a build problem. Do an administrative install of both MSIs and the version of the text file from each admin install. -Original Message- From: Ulrich Proeller [mailto:ulr...@prosa.biz] Sent: 11 January 2012 11:29 To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Applying a patch (.msp) doesn't increase the product version I think that the patch doesn't include this text file. At least ORCA shows only the file Szenariorechner.exe to be changed by the patch. The file Version.txt is marked as unchanged. -Ursprüngliche Nachricht- Von: Peter Shirtcliffe [mailto:pshirtcli...@sdl.com] Gesendet: Mittwoch, 11. Januar 2012 12:21 An: General discussion for Windows Installer XML toolset. Betreff: Re: [WiX-users] Applying a patch (.msp) doesn't increasethe product version I'd generate a verbose log while installing the patch to try and work out why the text file is not updated. The product version is just a property like any other and often seems not to be mentioned specially. That confused me when I wrote my first patch. -Original Message- From: Ulrich Proeller [mailto:ulr...@prosa.biz] Sent: 11 January 2012 11:00 To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Applying a patch (.msp) doesn't increasethe product version Thank you, this helps me a huge step forward. Referencing the ProductVersion changes the version as desired. Is this written in any documentation/book and I have overlooked it? And I didn't know about the View Patch feature in Orca. This makes life a lot easier! My patch family now looks like this: PatchFamily Id='pfSzenariorechner' Version='1.2.7.0' Supersede='yes' ComponentRef Id=Szenariorechner / PropertyRef Id=ProductVersion/ ComponentRef Id=VersionFile / /PatchFamily However, the text file with the version string is still not replaced. This is a separate component, in the same component group as the managed assembly and both are in the same fragment. I read that it should be enough to reference one component in each fragment to trigger the inclusion of all components in that fragment. Nevertheless, even referencing it explicitly doesn't help. Below, you see the definition of the mentioned fragment: Fragment ComponentGroup Id=Szenariorechner Component Id=Szenariorechner Guid=c447f464-15ac-4dc3-8456-623197bd6a71 Directory=INSTALLFOLDER File Id=Szenariorechner.exe Name=$(var.Szenariorechner.TargetFileName) Vital='yes' Checksum='yes' AssemblyApplication='Szenariorechner.exe' Source=$(var.Szenariorechner.TargetPath) DiskId=1 Assembly='.net' KeyPath=yes netfx:NativeImage Id=ngen.Szenariorechner Platform=all Priority=1 AppBaseDirectory=INSTALLFOLDER/ /File File Id=Szenariorechner.exe.config Name=$(var.Szenariorechner.TargetFileName).config Vital='yes' Source
Re: [WiX-users] Applying a patch (.msp) doesn't increasethe product version
Examining the .wixmst confirms my suspicion: If the file size has changed, the file is marked as modified in the .wixmst, else the file has no such markup. -Ursprüngliche Nachricht- Von: Peter Shirtcliffe [mailto:pshirtcli...@sdl.com] Gesendet: Donnerstag, 12. Januar 2012 10:51 An: General discussion for Windows Installer XML toolset. Betreff: Re: [WiX-users] Applying a patch (.msp) doesn't increasethe product version Can you verify this by producing a minimum test case ? Create an MSI with just 1 text file and an upgrade and a patch from that. It might help you narrow down what's going wrong. The .wixmst produced by torch is an xml file containing all the changes between the two inputs, even if they are not referenced by the patch wxs file. It might be worth looking through it for your text file name. It should be in there. -Original Message- From: Ulrich Proeller [mailto:ulr...@prosa.biz] Sent: 12 January 2012 09:34 To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Applying a patch (.msp) doesn't increasethe product version When examining the files with an administrative install, the files in the two .msi files are definitely different. When I change the file size of the text file, the file is included in the patch. But if the file size is the same as the file size of the original file, it isn't included into the patch. As far as I can see now, torch.exe does the following: 1. If a file has a version (.exe, .dll), that version is checked to determine if the file has changed. 2. If a file has no version, it is simply checked if the file size has changed. If the size is unchanged, the file is considered as unchanged. This appears to me to be a bug in torch.exe. I would try to find and fix this bug in torch.exe now as I really need to reliably create patches. Besides this, I think that in Wix 3.6 Beta, the patch creation is broken (torch.exe or pyro.exe). When I apply the 3.6 toolset to the same files which successfully created a patch file with WIX 3.5, I get an warning about an empty cabinet. -Ursprüngliche Nachricht- Von: Peter Shirtcliffe [mailto:pshirtcli...@sdl.com] Gesendet: Mittwoch, 11. Januar 2012 13:13 An: General discussion for Windows Installer XML toolset. Betreff: Re: [WiX-users] Applying a patch (.msp) doesn't increase the product version It all looks reasonable. I'd probably go back and examine the text file in the 2 MSIs that you're building the patch from. It could be a build problem. Do an administrative install of both MSIs and the version of the text file from each admin install. -Original Message- From: Ulrich Proeller [mailto:ulr...@prosa.biz] Sent: 11 January 2012 11:29 To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Applying a patch (.msp) doesn't increase the product version I think that the patch doesn't include this text file. At least ORCA shows only the file Szenariorechner.exe to be changed by the patch. The file Version.txt is marked as unchanged. -Ursprüngliche Nachricht- Von: Peter Shirtcliffe [mailto:pshirtcli...@sdl.com] Gesendet: Mittwoch, 11. Januar 2012 12:21 An: General discussion for Windows Installer XML toolset. Betreff: Re: [WiX-users] Applying a patch (.msp) doesn't increasethe product version I'd generate a verbose log while installing the patch to try and work out why the text file is not updated. The product version is just a property like any other and often seems not to be mentioned specially. That confused me when I wrote my first patch. -Original Message- From: Ulrich Proeller [mailto:ulr...@prosa.biz] Sent: 11 January 2012 11:00 To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Applying a patch (.msp) doesn't increasethe product version Thank you, this helps me a huge step forward. Referencing the ProductVersion changes the version as desired. Is this written in any documentation/book and I have overlooked it? And I didn't know about the View Patch feature in Orca. This makes life a lot easier! My patch family now looks like this: PatchFamily Id='pfSzenariorechner' Version='1.2.7.0' Supersede='yes' ComponentRef Id=Szenariorechner / PropertyRef Id=ProductVersion/ ComponentRef Id=VersionFile / /PatchFamily However, the text file with the version string is still not replaced. This is a separate component, in the same component group as the managed assembly and both are in the same fragment. I read that it should be enough to reference one component in each fragment to trigger the inclusion of all components in that fragment. Nevertheless, even referencing it explicitly doesn't help. Below, you see the definition of the mentioned fragment: Fragment ComponentGroup Id=Szenariorechner Component Id=Szenariorechner Guid=c447f464-15ac-4dc3-8456-623197bd6a71 Directory=INSTALLFOLDER File Id=Szenariorechner.exe Name
Re: [WiX-users] Applying a patch (.msp) doesn't increasethe product version
I'd generate a verbose log while installing the patch to try and work out why the text file is not updated. The product version is just a property like any other and often seems not to be mentioned specially. That confused me when I wrote my first patch. -Original Message- From: Ulrich Proeller [mailto:ulr...@prosa.biz] Sent: 11 January 2012 11:00 To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Applying a patch (.msp) doesn't increasethe product version Thank you, this helps me a huge step forward. Referencing the ProductVersion changes the version as desired. Is this written in any documentation/book and I have overlooked it? And I didn't know about the View Patch feature in Orca. This makes life a lot easier! My patch family now looks like this: PatchFamily Id='pfSzenariorechner' Version='1.2.7.0' Supersede='yes' ComponentRef Id=Szenariorechner / PropertyRef Id=ProductVersion/ ComponentRef Id=VersionFile / /PatchFamily However, the text file with the version string is still not replaced. This is a separate component, in the same component group as the managed assembly and both are in the same fragment. I read that it should be enough to reference one component in each fragment to trigger the inclusion of all components in that fragment. Nevertheless, even referencing it explicitly doesn't help. Below, you see the definition of the mentioned fragment: Fragment ComponentGroup Id=Szenariorechner Component Id=Szenariorechner Guid=c447f464-15ac-4dc3-8456-623197bd6a71 Directory=INSTALLFOLDER File Id=Szenariorechner.exe Name=$(var.Szenariorechner.TargetFileName) Vital='yes' Checksum='yes' AssemblyApplication='Szenariorechner.exe' Source=$(var.Szenariorechner.TargetPath) DiskId=1 Assembly='.net' KeyPath=yes netfx:NativeImage Id=ngen.Szenariorechner Platform=all Priority=1 AppBaseDirectory=INSTALLFOLDER/ /File File Id=Szenariorechner.exe.config Name=$(var.Szenariorechner.TargetFileName).config Vital='yes' Source=$(var.Szenariorechner.TargetPath).config DiskId=1 / File Id='Szenariorechner.ico' Name='Szenariorechner.ico' Vital='yes' Source='$(var.Szenariorechner.ProjectDir)Resources\favicon.ico' DiskId='1' / /Component Component Id='VersionFile' Guid='037d742c-583f-414b-acad-f99907a4b7d1' Directory=INSTALLFOLDER File Id=FILE_Version Source=$(var.Szenariorechner.TargetDir)Version.txt KeyPath=yes / /Component /ComponentGroup ComponentGroup Id='Shortcuts' . /ComponentGroup ComponentGroup Id=Telerik /ComponentGroup ComponentGroup Id=Misc .. /ComponentGroup /Fragment -Ursprüngliche Nachricht- Von: Peter Shirtcliffe [mailto:pshirtcli...@sdl.com] Gesendet: Mittwoch, 11. Januar 2012 11:23 An: General discussion for Windows Installer XML toolset. Betreff: Re: [WiX-users] Applying a patch (.msp) doesn't increase the product version Add a propertyref to the ProductVersion property. If your text file is in a separate component from the exe then add a componentref to that too. Orca will only show 2 tables because the rest of the changes are in 2 transforms embedded in the patch. Use the View Patch menu item in Orca after loading the base MSI to get a better idea of what it changes. -Original Message- From: Ulrich Proeller [mailto:ulr...@prosa.biz] Sent: 11 January 2012 08:00 To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Applying a patch (.msp) doesn't increase the product version Orca just shows only 2 tables in the patch file: MsiPatchMetadata and MsiPatchSequence. Therefore I wonder why the patch is doing anything. Here are the steps to create the patch: c:\Program Files (x86)\Windows Installer XML v3.5\bin\candle.exe patch.wxs c:\Program Files (x86)\Windows Installer XML v3.5\bin\light.exe patch.wixobj c:\Program Files (x86)\Windows Installer XML v3.5\bin\torch.exe -p -xi ..\Releases\V126\SzenariorechnerSetup.wixpdb ..\Releases\V127\SzenariorechnerSetup.wixpdb -out patch.wixmst c:\Program Files (x86)\Windows Installer XML v3.5\bin\pyro.exe patch.wixmsp -out patch.msp -t RTM patch.wixmst -sf The switch -sf in the pyro command was added the get rid of a duplicate key error. -Ursprüngliche Nachricht- Von: Rob Mensching [mailto:r...@robmensching.com] Gesendet: Mittwoch, 11. Januar 2012 07:08 An: General discussion for Windows Installer XML toolset. Betreff: Re: [WiX-users] Applying a patch (.msp) doesn't increase the product version First, you can use Orca to see what the patch is modifying. After that, I epxect the WiX v3.6 warnings were that it didn't find anything updated. Maybe post the set of steps you followed to build the patch? On Tue, Jan 10, 2012 at 11:01 AM, Ulrich Proeller ulr...@prosa.biz wrote: Hi All, I am trying to create a patch (minor