#1880 Questions and comments about building Patch page

website
closed
Heath Stewart
2012-09-15
2009-11-14
John Schmitz
No

Some questions and comments about this page (http://wix.sourceforge.net/manual-wix2/patch_building.htm):
1) In step 2, my WSX file does not have the Id property, which I believe means that it will automatically be regenerated on each build. It would be helpful to document that possiblity, or specify if that is somehow invalid in this context.
2) In step 5, shouldn't the schema be 2006?
3) I am confused (being a newbie with WIX) with an apparent conflict between step 5, where you CREATE a .PCP file, and step 6, where the same file (I THINK) is listed as the OUTPUT for the light linker.
4) It would help me at least if there were a lot more detail in step 6, or references to other samples and documentation. For instance, my WIX setup is generated by Indigo Rose MSI Factory, which generates several WSX files. ALL the WSX files in your project need to be included in the compiler and linker lines.

I was attracted to this as potentially a way to automate building a real .MSI of a full installer for a 1.0.1 version of a product, doing the admin install, and then building a 1.0.1 PATCH that could be used by customers to upgrade a 1.0.0 installation to 1.0.1. From the errors I get from the linker, I think that this is actually NOT possible, even if your setup is built from a hand-edited WSX file, and even though it seems like a very obvious thing to want to make part of an automated build. Perhaps that's another tutorial. how-to or manual page, but it seems to me that it should be covered by this page.

Discussion

  • John Schmitz
    John Schmitz
    2009-11-14

    I believe that I have isolated the major bug in this page to be implied by my question #3.

    Step three should read:
    5. Create a WIX source (.wsx) file

    The current Candle compiler will definitely complain about the schema, so #2 is also a valid bug.

     
  • John Schmitz
    John Schmitz
    2009-11-14

    Also, the usage and need for an abbreviated name, with VALID EXAMPLES needs to be expanded upon. One of the errors that I'm getting is that the Family/@Name attribute can only be 8 characters long! That limitation may be known to some, but should be documented here.

     
  • John Schmitz
    John Schmitz
    2009-11-14

    Other errors and warnings when compiled with 3.5 (now that I know that the block in step 5 is a WIX source file):

    It doesn't look like patches support auto-generation of the package ID as I previously suggested. I'll enter that as afeature suggestion.

    The page should be updated to use SourceFile instead of src to avoid Candle warnings. Maybe there needs to be some mention of which version WIX the sample is intended for, and what to do to modify it for the current version (3.5 is what I'm using).

    UpgradeImage/@Id attribute's must be 13 characters long or less.

    TargetImage/@Id attribute's must be 13 characters long or less.

    The PatchSequence/@PatchFamily attribute's value, 'co and abbr_1', is not a legal identifier. Identifiers may contain ASCII characters A-Z, a-z, digits, underscores (_), or periods (.). Every identifier must begin with either a letter or an underscore.

    IOW, the text "insert-organization-name-here and insert-product-abbreviaiton-here1" should be "insert-organization-name-here_insert-product-abbreviaiton-here1" (no spaces). Limitations like what are outlined in the error should be documented (for instance, you cannot use hypens).

    The PatchSequence/@Supersede attribute's value, '0', is not a legal yes/no value. The only legal values are 'no' and 'yes'. (another 3.5 issue?)

    For the following:

    The PatchSequence/@Target attribute has been deprecated in favor of the more strongly-typed ProductCode or TargetImage attributes. Please use the ProductCode attribute for indicating the ProductCode of a patch family directly, or the TargetImage attribute to specify the TargetImage which in turn will retrieve the ProductCode of the patch family.

    Looks like the WSX code should be changed from:
    Target="insert-product-abbreviaiton-hereTarget"
    to:
    TargetImage="$(var.Proj1)\ImageProPlus7.msi"

     
  • John Schmitz
    John Schmitz
    2009-11-14

    Sorry, too quick with the cut'n'paste. Using the naming of the files in the procedure, the last line of the last comment should read:

    TargetImage src="$(var.Proj1)\Installer.msi"

     
  • Heath Stewart
    Heath Stewart
    2010-01-15

    I recommend using the <Patch/> element which produces an MSP directly using WiX instead of PCP files. Pyro.exe (our WiX tool that makes use of <Patch/>) actually protects against a number of issues you can easily encounter with PCP files and msimsp.exe (patchwiz.dll). It's a vastly improved system and doesn't not require the Windows Installer SDK (which is required to process PCP files into an MSP).

     
  • Heath Stewart
    Heath Stewart
    2010-01-15

    I realized you're referencing the WiX 2.0 documentation. The schema should not be 2006. If you are using the 2006 schema, you're using WiX 3.0 (which also contains pyro.exe, a preferred way of building patches). The WiX 3.0 documentation for PCP files is at http://wix.sourceforge.net/manual-wix3/patch_building.htm. Does this work better for you? If not, please reopen this bug and I can update the documentation for whichever you need if not appropriate.

     
  • This Tracker item was closed automatically by the system. It was
    previously set to a Pending status, and the original submitter
    did not respond within 14 days (the time period specified by
    the administrator of this Tracker).