And apparently no attachments. I'll paste the contents :) Content of original post with attachments:
Sure thing. It was a long day so sorry for the lack of detail. Attached you'll find the wxs for the installs and the patches, and the batch files I use. I pass the version numbers into the batch files which in turn pass them along to WiX. I create the installs with buildInstall 0.3.0.0 for example, then the patches with buildPatch 0.3.0.0 0.3.1.0. Product Install WXS: <?xml version="1.0" encoding="UTF-8"?> <!-- These variables define the Windows Installer product version, product code and upgrade code. They --> <!-- will be used later on in this file. --> <?define Property_ProductVersion = "$(var.Version)"?> <?define Property_ProductCode = "6461E4A1-C0B4-4BF8-8F61-B499D5521BE1"?> <?define Property_UpgradeCode = "2E1DE166-F933-4671-8984-7C604C467032"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"> <Product Id="$(var.Property_ProductCode)" Name="!(loc.Property_ProductName)" Language="!(loc.Property_ProductLanguage)" Version="$(var.Property_ProductVersion)" Manufacturer="!(loc.Property_CompanyName)" UpgradeCode="$(var.Property_UpgradeCode)"> <Package Description="!(loc.Package_Description)" Comments="!(loc.Package_Comments)" InstallerVersion="300" Compressed="yes"/> <Upgrade Id="$(var.Property_UpgradeCode)"> <UpgradeVersion Minimum="$(var.Property_ProductVersion)" IncludeMinimum="no" OnlyDetect="yes" Property="NEWERVERSIONDETECTED" /> <UpgradeVersion Minimum="0.1.0" IncludeMinimum="yes" Maximum="$(var.Property_ProductVersion)" Property="OLDERVERSIONBEINGUPGRADED" /> </Upgrade> <InstallExecuteSequence> <RemoveExistingProducts After="InstallInitialize"/> </InstallExecuteSequence> <Condition Message="!(loc.LaunchCondition_LaterVersion)"> NOT NEWERVERSIONDETECTED OR Installed </Condition> <Condition Message="!(loc.LaunchCondition_WrongOSVersion)"> <![CDATA[Installed OR (VersionNT >= 501)]]> </Condition> <CustomActionRef Id="WixExitEarlyWithSuccess"/> <Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="ProgramFilesFolder" Name="PFiles"> <Directory Id="CompanyFolder" Name="!(loc.Property_CompanyFolderName)"> <Directory Id="APPLICATIONFOLDER" Name="!(loc.Property_ProductFolderName)"> <Directory Id="Localization" Name="Localization"> <Directory Id="engus" Name="eng-us" /> </Directory> </Directory> </Directory> </Directory> <Directory Id="ProgramMenuFolder"> <Directory Id="ApplicationProgramsFolder" Name="!(loc.Property_ProductFolderName)"/> </Directory> </Directory> <DirectoryRef Id="APPLICATIONFOLDER"> <Component Id="TrionProductExe" Guid="D9FF803E-3D2F-44DE-AC58-2E9689CC6213"> <File Id="ProductExe" Name="TrionProduct.exe" DiskId="1" Source="$(var.Version)/TrionProduct.exe"/> </Component> <Component Id="TrionProductDll" Guid="281B81AC-C13C-413B-8552-6E9596D2EAE6"> <File Id="patchingServiceDll" Name="PatchingService.dll" DiskId="1" Source="$(var.Version)/PatchingService.dll"/> </Component> <Component Id="TrionProductTxt" Guid="34BD9626-EAC0-4FEA-85E7-1E52885624A3"> <File Id="readMeTxt" Name="ReadMe.txt" DiskId="1" Source="$(var.Version)/ReadMe.txt"/> </Component> <Merge Id="VCRedistCRT" SourceFile="MergeModules\Microsoft_VC90_CRT_x86.msm" DiskId="1" Language="0"/> <Merge Id="VCRedistMFC" SourceFile="MergeModules\Microsoft_VC90_MFC_x86.msm" DiskId="1" Language="0"/> </DirectoryRef> <DirectoryRef Id="engus" > <Component Id="LocalizedTextXmlEngUS" Guid="B68CDE8C-66B1-45A0-933E-20FFC44C9FD8"> <File Id="LocalizedXmlEngUS" Name="LocalizedText.xml" DiskId="1" Source="$(var.Version)/Localization/eng-us/LocalizedText.xml"/> </Component> </DirectoryRef> <DirectoryRef Id="ApplicationProgramsFolder"> <Component Id="ApplicationShortcut" Guid="05EDFE33-7610-4A52-BA6D-CA4FF929C837"> <Shortcut Id="ApplicationStartMenuShortcut" Name="!(loc.Shortcut_ProductLink)" Description="!(loc.Shortcut_ProductDescription)" Target="[APPLICATIONFOLDER]TrionProduct.exe" WorkingDirectory="APPLICATIONFOLDER"/> <Shortcut Id="ReadMeStartMenuShortcut" Name="!(loc.Shortcut_ReadMeLink)" Description="!(loc.Shortcut_ReadMeDescription)" Target="[APPLICATIONFOLDER]ReadMe.txt" WorkingDirectory="APPLICATIONFOLDER"/> <Shortcut Id="UninstallProduct" Name="!(loc.Shortcut_UninstallLink)" Description="!(loc.Shortcut_UninstallDescription)" Target="[System64Folder]msiexec.exe" Arguments="/x [ProductCode]"/> <util:InternetShortcut Id="OnlineHelp" Name="!(loc.Shortcut_HelpLink)" Target="!(loc.Property_ArpHelpLink)"/> <RemoveFolder Id="ApplicationProgramsFolder" On="uninstall"/> <RegistryValue Root="HKCU" Key="Software\Trion\TrionProduct" Name="installed" Type="integer" Value="1" KeyPath="yes"/> </Component> </DirectoryRef> <Feature Id='TrionProduct' Title='Trion World Network Product' Level='1'> <ComponentRef Id='TrionProductExe' /> <ComponentRef Id='TrionProductDll' /> <ComponentRef Id='TrionProductTxt' /> <ComponentRef Id="ApplicationShortcut" /> <ComponentRef Id="LocalizedTextXmlEngUS" /> <MergeRef Id="VCRedistCRT"/> <MergeRef Id="VCRedistMFC"/> </Feature> <Property Id="ARPHELPLINK" Value="!(loc.Property_ArpHelpLink)" /> <Property Id="ARPURLINFOABOUT" Value="!(loc.Property_ArpUrlInfoAbout)" /> <Media Id="1" Cabinet="Product.cab" EmbedCab="yes"/> <Property Id="WIXUI_INSTALLDIR" Value="APPLICATIONFOLDER" /> <UI> <UIRef Id="WixUI_InstallDir" /> <Publish Dialog="ExitDialog" Control="Finish" Event="DoAction" Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish> </UI> <WixVariable Id="WixUILicenseRtf" Value="License.rtf" /> <Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="!(loc.Package_LaunchAfterInstall)" /> <Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOX" Value="1"/> <Property Id="WixShellExecTarget" Value="[#ProductExe]" /> <CustomAction Id="LaunchApplication" BinaryKey="WixCA" DllEntry="WixShellExec" Impersonate="yes" /> </Product> </Wix> Batch file to build it: :: This is an example of how to build the English version of the installer. :: This file should be replaced with something more appropriate. del /f /q "*.wixobj" del /f /s /q %1 mkdir %1 xcopy ..\bin\TrionProduct.exe %1 /C /Q /R /Y xcopy ..\bin\PatchingService.dll %1 /C /Q /R /Y xcopy ..\TrionProduct\Localization\* %1\Localization\ /C /Q /R /Y /S xcopy ReadMe.txt %1 /C /Q /R /Y del %1\Localization\*.tll "%WIX%\bin\candle" -dVersion=%1 -ext WixUIExtension -ext wixUtilExtension TrionProductInstall.wxs "%WIX%\bin\light" -dVersion=%1 -cultures:en-US -loc TrionProductInstall-en-US.wxl -ext wixUtilExtension -ext WixUIExtension TrionProductInstall.wixobj -out %1\TrionProductInstall.msi Patch WXS: <?xml version="1.0" encoding="utf-8"?> <!-- Should be the same as the version that will be patched --> <?define Property_ProductVersion = "$(var.Version)"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <Patch AllowRemoval="yes" Manufacturer="!(loc.Property_CompanyName)" MoreInfoURL="!(loc.Property_ArpHelpLink)" DisplayName="!(loc.Property_ProductName)" Description="!(loc.Patch_Description)" Classification="Update"> <Media Id="5000" Cabinet="RTM.cab"> <PatchBaseline Id="RTM"/> </Media> <PatchFamilyRef Id="TrionProductPatch"/> </Patch> <Fragment> <PatchFamily Id='TrionProductPatch' Version='$(var.Property_ProductVersion)' Supersede='yes'> <ComponentRef Id='TrionProductExe' /> <ComponentRef Id='TrionProductDll' /> <ComponentRef Id='TrionProductTxt' /> <ComponentRef Id="LocalizedTextXmlEngUS" /> <ComponentRef Id="ApplicationShortcut" /> </PatchFamily> </Fragment> </Wix> Patch batch file to make a patch from 2 installs: mkdir Patch-%1-to-%2 "%WIX%\bin\torch" -p -xi %1\TrionProductInstall.wixpdb %2\TrionProductInstall.wixpdb -out Patch-%1-to-%2\Diff.Wixmst "%WIX%\bin\candle" -dVersion=%1 TrionProductPatch.wxs "%WIX%\bin\light" -dVersion=%1 TrionProductPatch.wixobj -out Patch-%1-to-%2\Patch.WixMsp -loc TrionProductPatch-en-us.wxl "%WIX%\bin\pyro" Patch-%1-to-%2\Patch.WixMsp -out Patch-%1-to-%2\TrionProductPatch.msp -t RTM Patch-%1-to-%2\Diff.wixmst --Emanuel -----Original Message----- From: Emanuel Masciarelli [mailto:emasciare...@trionworld.com] Sent: Friday, April 24, 2009 10:05 AM To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] How To Create Successive Patches That SupersedePrevious? Sure thing. It was a long day so sorry for the lack of detail. Attached you'll find the wxs for the installs and the patches, and the batch files I use. I pass the version numbers into the batch files which in turn pass them along to WiX. I create the installs with buildInstall 0.3.0.0 for example, then the patches with buildPatch 0.3.0.0 0.3.1.0. --Emanuel -----Original Message----- From: Pally Sandher [mailto:pally.sand...@iesve.com] Sent: Friday, April 24, 2009 5:13 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] How To Create Successive Patches That SupersedePrevious? I've created patches which do exactly what you're trying to do but from your description I can't pinpoint where you're going wrong. If you could post the .wxs file you're using to create your .pcp file, I or someone else on the list should be able to help point you in the right direction. Cheers, Palbinder Sandher Software Deployment & IT Administrator T: +44 (0) 141 945 8500 F: +44 (0) 141 945 8501 http://www.iesve.com **Design, Simulate + Innovate with the <Virtual Environment>** Integrated Environmental Solutions Limited. Registered in Scotland No. SC151456 Registered Office - Helix Building, West Of Scotland Science Park, Glasgow G20 0SP Email Disclaimer -----Original Message----- From: Emanuel Masciarelli [mailto:emasciare...@trionworld.com] Sent: 24 April 2009 01:53 To: wix-users@lists.sourceforge.net Subject: [WiX-users] How To Create Successive Patches That SupersedePrevious? I tried looking through the digests on sourceforge but couldn't find a way to search, and didn't see this question answered so I apologize if it's a duplicate. I am trying to create patches for a product that will each be all encompassing of the previous ones, and want anybody at any version to be able to install the latest patch. Following the instructions on the site I can create patches just fine, so I can install 0.3.0.0 then patch from 0.3.0.0 to 0.3.1.0. I created my 0.3.2.0 patch from 0.3.0.0 (to encompass the 0.3.1.0 stuff) and when I apply it it says it cannot as "The upgrade patch cannot be installed by the Windows Installer service because the program to be upgraded may be missing, or the upgrade patch may update a different version of the program." In my PatchFamily tag I have set the version to be the new version in both patches (so 0.3.1.0 and 0.3.2.0), and Supersede=yes for both. Is there something else I'm missing? From my understanding of the documentation the MsiPatchSequence table should have increasing numbers for all my patches and they should supersede each other just fine, but obviously I'm wrong. Any help is appreciated. --Emanuel ------------------------------------------------------------------------ ------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensign option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensign option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensign option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users