Re: [WiX-users] How To Create Successive Patches That Supersede Previous?

2009-04-25 Thread Emanuel Masciarelli
Thanks for the information.  I'll look into using a major upgrade instead of 
the way I'm currently doing it.  The only real requirement is that the install 
be as lightweight as possible.  The initial install MSI is 15 meg due to the 
Visual Studio runtime and when I update the exe I don't want the user to have 
to redownload the full MSI with the runtime (the patch files are 8KB instead of 
the full 15 meg).

--Emanuel

-Original Message-
From: Heath Stewart [mailto:clubs...@gmail.com]
Sent: Saturday, April 25, 2009 10:46 AM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] How To Create Successive Patches That Supersede 
Previous?

This is not a recommended use for patches. If you're going to update all
files, you should consider a major upgrade instead.

To avoid the issue where the patch always sequences to the highest
ProductVersion (which means you must change the ProductCode or some other
identity property, or you lose control of the patch applying to your
products out in the field), you should have it target the current
ProductVersion for the upgrade build and *lower*. Under your PatchBaseline,
add the following:

Validate ProductVersionOperator=LesserOrEqual/

On Fri, Apr 24, 2009 at 8:14 AM, Emanuel Masciarelli 
emasciare...@trionworld.com wrote:

 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

Re: [WiX-users] How To Create Successive Patches That SupersedePrevious?

2009-04-24 Thread Emanuel Masciarelli
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
This attachment was removed.--
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


Re: [WiX-users] How To Create Successive Patches That Supersede Previous?

2009-04-24 Thread Emanuel Masciarelli
=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=LaunchApplicationWIXUI_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

[WiX-users] How To Create Successive Patches That Supersede Previous?

2009-04-23 Thread Emanuel Masciarelli
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