Now we might be getting somewhere.

When binding source files into a wixout the field values associated with wix 
extensions are missing extra properties/decorations.

Wixout from a working version contains this
  <table name="WixControl" 
xmlns="http://schemas.microsoft.com/wix/2006/objects";>
    <row sectionId="wix.section.27" 
sourceLineNumber="C:\delivery\Dev\wix30_public\src\ext\UIExtension\wixlib\LicenseAgreementDlg.wxs*28">
      <field>LicenseAgreementDlg</field>
      <field>LicenseText</field>
      <field 
cabinetFileId="3">!(wix.WixUILicenseRtf=C:\delivery\Dev\wix30_public\src\ext\UIExtension\wixlib\license.rtf)</field>
    </row>
  </table>

Vs this in the broken version:
  <table name="WixControl" 
xmlns="http://schemas.microsoft.com/wix/2006/objects";>
    <row sectionId="wix.section.27" 
sourceLineNumber="C:\delivery\Dev\wix30_public\src\ext\UIExtension\wixlib\LicenseAgreementDlg.wxs*28">
      <field>LicenseAgreementDlg</field>
      <field>LicenseText</field>
      <field 
cabinetFileId="53">C:\delivery\Dev\wix30_public\src\ext\UIExtension\wixlib\license.rtf</field>
    </row>
  </table>

I don't understand what the '!(wix.WixUILicenseRtf' syntax means, but it's 
obviously related. In both instances the referenced fileId (3 & 53 
respectively,) is the common license file, not the file I'm trying to use. I 
tried manually editing the wixout file before generating the msi and I think it 
worked although I haven't tested it properly yet.

Is that enough to find the source of the bug? Can you think of a workaround 
that would build the wixout correctly? ATM my workaround is to build my msi 
twice, using the msi from the unbound wixout and the pdb from the bound version 
to create patches against.

Thanks,
Matt

-----Original Message-----
From: Blair [mailto:os...@live.com] 
Sent: Wednesday, 7 July 2010 10:11 AM
To: 'General discussion for Windows Installer XML toolset.'
Subject: Re: [WiX-users] WixUILicenseRtf broken when binding sources into wixpdb

Caveat: the following description of intermediate files is subject to change
any time and shouldn't be relied upon to stay the same. There are routines
publicly available from wix.dll that manipulate these file formats and ONLY
those routines are supported when manipulating these files. Given that
caveat, however, the following may prove useful in determining where the
values set via WixVariables are getting lost in your build scenario.

In WiX v3.x, "bound" or "binary" intermediate files (wixlib, wixout, wixpdb)
consist of a CAB with XML appended to the end. For investigative purposes
you can split them (open, search for the literal "<?xml " and split the two
files right before the string you searched for).

A wixpdb wraps a wixout. A wixlib is a different kind of wixout. Even wixobj
files are a different variant, except they are never "bound" (at least in
v3.x). The "content" of one of these XML files is a collection of tables,
including definitions, some of which represent "unreal" tables (tables that
are never directly written to a Windows Installer file).

field elements with an attribute named cabinetFileId should access the
correspondingly indexed file from the cabinet you separated out. Verify if
those files are correct or not, as well as what the values of the field
element contain (they should have been replaced by the values of the
WixVariable as you set them). Please report what you found, as it can help
determine where to look for the code flaw.

-----Original Message-----
From: Matt Sullivan [mailto:msulli...@zaptechnology.com] 
Sent: Tuesday, July 06, 2010 3:01 PM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] WixUILicenseRtf broken when binding sources into
wixpdb

Thanks for your help Blair, however excluding the extensions while linking
the msi doesn't seem to make an difference.

The only error or warning I get is this:
C:\TFS\CustomizationWizard\Releases\2.2 SP1\Customization
Wizard\Setup\Setup.wxs(136) : warning LGHT1076 : ICE03: String overflow
(greater than length permitted in column); Table: Shortcut, Column: Target,
Key(s): StartMenuInstallGuideShortcut

And I see that regardless of whether I link directly to msi, or via an
intermediate wixout.

Is there any way to disassemble the wixout and anything specific I could
look for to give a hint about what the UI extension is doing?

-----Original Message-----
From: Blair [mailto:os...@live.com] 
Sent: Wednesday, 7 July 2010 3:11 AM
To: 'General discussion for Windows Installer XML toolset.'
Subject: Re: [WiX-users] WixUILicenseRtf broken when binding sources into
wixpdb

I am the Blair from that email thread you referenced for the "call light
twice" technique. That technique was tested without any WixVariable usage.
However, I believe the wixout file should have all required fragments from
the extensions, so I would hope that the extensions could be dropped from
the second time you call light.

Are there any errors in your build if you don't include any extensions when
you do the binding (the second call to light)?

-----Original Message-----
From: Matt Sullivan [mailto:msulli...@zaptechnology.com] 
Sent: Tuesday, July 06, 2010 12:29 AM
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] WixUILicenseRtf broken when binding sources into wixpdb

Hi All,

I'm trying to make my build process produce a wixpdb that has source files
bound into it to make patching easier later.

I'm calling light.exe twice to first link into a wixout, then again to
create the msi as suggested here:
http://www.mail-archive.com/wix-users@lists.sourceforge.net/msg19719.html

This produces the files I expect, however the resultant msi does not include
the correct license text or splash screen images. (Instead showing a red cd
image and the 'common public license'.)

I'm using light.exe as follows:
Light.exe -v -cultures:en-us -ext "C:\Program Files (x86)\Windows Installer
XML v3\bin\WixUtilExtension.dll" -ext "C:\Program Files (x86)\Windows
Installer XML v3\bin\WixUIExtension.dll" -ext "C:\Program Files
(x86)\Windows Installer XML v3\bin\WixNetFxExtension.dll" -loc
Language\WixUI_en-us.wxl -xo -bf -out
"obj\Release\en-us\CustomizationWizard.wixout"
obj\Release\ProgramFiles.wixobj obj\Release\Setup.wixobj

Light.exe -v -ext "C:\Program Files (x86)\Windows Installer XML
v3\bin\WixUtilExtension.dll" -ext "C:\Program Files (x86)\Windows Installer
XML v3\bin\WixUIExtension.dll" -ext "C:\Program Files (x86)\Windows
Installer XML v3\bin\WixNetFxExtension.dll" -out
bin\Release\en-us\CustomizationWizard.msi -pdbout
bin\Release\en-us\CustomizationWizard.wixpdb
obj\Release\en-us\CustomizationWizard.wixout

The problem appears directly related to whether source files are being
bound. If I the exact same light commands but remove the '-bf' parameter it
seems to do the right thing.

Fyi: my Product xml element includes the following definitions:
    <WixVariable Id="WixUILicenseRtf" Value="ZAP SOFTWARE LICENSE TERMS.rtf"
/>
    <WixVariable Id="WixUIBannerBmp" Value="Bitmaps\banner.bmp" />
    <WixVariable Id="WixUIDialogBmp" Value="Bitmaps\dlg.bmp" />
    <WixVariable Id="WixUIExclamationIco" Value="Bitmaps\exclamation.ico" />
    <WixVariable Id="WixUIInfoIco" Value="Bitmaps\info.ico" />
    <WixVariable Id="WixUINewIco" Value="Bitmaps\new.ico" />
    <WixVariable Id="WixUIUpIco" Value="Bitmaps\up.ico" />

Any help much appreciated, thanks,
Matt


----------------------------------------------------------------------------
--
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


----------------------------------------------------------------------------
--
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users



----------------------------------------------------------------------------
--
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users



------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to