When using the wixpdb method of patching, if you refer to something using a componentref, propertyref etc, then the whole of the fragment that the "something" lives in is included in the patch. If, during your build, you increment all file versions then everything in those fragments has changed and you will have a lot of changed components in your patch. One solution is to fragment your MSI. The topic "Building a patch using Wix" in the Wix help contents shows an example of this. Alternatively, you can use the admin install method of patching. This latter option allows you to specify exactly what you want in the patch. http://blogs.msdn.com/b/pmarcu/archive/2008/05/30/patching-something-you-didn t-build-with-wix-using-wix-.aspx There may be other solutions that I'm not aware of.
-----Original Message----- From: Kanishk Rastogi [mailto:karas...@microsoft.com] Sent: 11 August 2011 05:01 To: wix-users@lists.sourceforge.net; Windows Installer XML Announcements Cc: wix-d...@lists.sourceforge.net Subject: [WiX-users] Question regarding upgrades... Hi all, Hi all, I am trying to develop a "Small patch" for Our product via wixpdb way with the patch wxs as:: <?xml version="1.0" encoding="utf-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <Patch AllowRemoval="yes" Classification="Update" Comments="Abra ka dabra" Description="dabra ka abra" DisplayName="patch" Manufacturer="AAA" TargetProductName="XXX"> <Media Id="100" Cabinet="Data1.Cab"> <PatchBaseline Id="patch" /> </Media> <PatchFamily Id="MyPatchFamily" Version="1.0.1709.0" ProductCode="8AB21D86-21F0-430A-9AD1-2D90077104C3" Supersede="yes"> <ComponentRef Id="cm_cbengine.exe.config" /> <ComponentRef Id="cm_VhdFileProvider.dll" /> </PatchFamily> </Patch> </Wix> I want to patch just 2 files in this patch.. cbengine.exe.config and VhdFileProvider.dll The steps which I do are.. Build the product with version 1.0.1709.0. Change the config file Increment the version Rebuild the product... candle.exe patch.wxs light.exe patch.wixobj torch.exe -p -xi CloudBackupProviderolder.wixpdb CloudBackupProvidernewer.wixpdb -out Patch.wixmst pyro.exe patch.wixmsp -t patch Patch.wixmst -out Patch.msp This patch gets generated and I am able to apply it. But I see that all the dlls have the version updated... Is that expected? And is it copying all the dlls? If yes does the patch also contains all the dlls. ? Again if yes then whats the use of adding <ComponentRef Id="cm_VhdFileProvider.dll" /> Also, In the logs for all dlls I see:: MSI (s) (DC:4C) [15:04:13:968]: Executing op: CacheBaselineFile(Baseline=0,FileKey=F__VhdFileProvider.dll,FilePath=C:\Progr am Files\Microsoft Cloud Backup Provider\bin\VhdFileProvider.dll,,Existing=1) MSI (s) (DC:4C) [15:04:13:981]: Executing op: CacheRTMFile(SourceFilePath=C:\Program Files\Microsoft Cloud Backup Provider\bin\VhdFileProvider.dll,FileKey=F__VhdFileProvider.dll,,ProductCode= {8AB21D86-21F0-430A-9AD1-2D90077104C3},ProductVersion=1.0.1709,Attributes=460 8,,,,CopierFlags=0,,,,,,) MSI (s) (DC:4C) [15:04:13:981]: Executing op: RegisterSharedComponentProvider(PatchGUID={7BF6F157-1695-40CC-B4E8-A6124BE553 90},MediaCabinet=#Data1.Cab,File=F__VhdFileProvider.dll,Component={207B3B2A-0 4BF-4665-A6AB-76E3BC87D48F},ComponentVersion=1.0.1710.0,ProductCode={8AB21D86 -21F0-430A-9AD1-2D90077104C3},ProductVersion=1.0.1709,PatchSize=0,PatchAttrib utes=0,PatchSequence=10056,SharedComponent=0,IsFullFile=1) MSI (s) (DC:4C) [15:04:13:997]: Executing op: FileCopy(SourceName=VHDFIL~1.DLL|VhdFileProvider.dll,SourceCabKey=F__VhdFileP rovider.dll,DestName=VhdFileProvider.dll,Attributes=4608,FileSize=1633792,Per Tick=65536,,VerifyMedia=1,,,,,CheckCRC=0,Version=1.0.1710.0,Language=1033,Ins tallMode=58982400,,,,,,,) MSI (s) (DC:4C) [15:04:13:998]: File: C:\Program Files\Microsoft Cloud Backup Provider\bin\VhdFileProvider.dll; Overwrite; Won't patch; Existing file is a lower version MSI (s) (DC:4C) [15:04:13:998]: Source for file 'F__VhdFileProvider.dll' is compressed MSI (s) (DC:4C) [15:04:13:999]: Re-applying security from existing file. MSI (s) (DC:4C) [15:04:14:001]: Verifying accessibility of file: VhdFileProvider.dll There is a wont patch field in the log.. Does it means that its not getting patched?? Is there a way I can ask the patch to just send limited files... Thankx Kanishk PS: have attatched the logs for patching ----------------------------------------------------------------------------- - Get a FREE DOWNLOAD! and learn more about uberSVN rich system, user administration capabilities and model configuration. Take the hassle out of deploying and managing Subversion and the tools developers use with it. http://p.sf.net/sfu/wandisco-dev2dev _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users SDL PLC confidential, all rights reserved. If you are not the intended recipient of this mail SDL requests and requires that you delete it without acting upon or copying any of its contents, and we further request that you advise us. SDL PLC is a public limited company registered in England and Wales. Registered number: 02675207. Registered address: Globe House, Clivemont Road, Maidenhead, Berkshire SL6 7DY, UK. ------------------------------------------------------------------------------ Get a FREE DOWNLOAD! and learn more about uberSVN rich system, user administration capabilities and model configuration. Take the hassle out of deploying and managing Subversion and the tools developers use with it. http://p.sf.net/sfu/wandisco-dev2dev _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users