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 &#45; New Free Runtime and 30 Day Trial Check out the
new simplified licensign option that enables unlimited royalty&#45;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 &#45; New Free Runtime and 30 Day Trial
Check out the new simplified licensign option that enables unlimited
royalty&#45;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 &#45; New Free Runtime and 30 Day Trial
Check out the new simplified licensign option that enables unlimited
royalty&#45;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

Reply via email to