Re: [WiX-users] [WiX-devs] WiX v3.0.1828.0 Overridable attribute causing buildbreak.

2006-07-11 Thread Wilson, Brad



is there any plan to have a -cultures cmd-line option for 
lit.exe? The idea here is that we'd like to have a complete dialog set in 
a wix library that includes all available dialogs and all languages for those 
dialogs. Then when we need a specific dialog sequence we create a new 
wixlib andinclude that dialog set, specify a culture, and define our 
sequence using DialogRef and Publish elements. Then include that sequence 
in the install wxs file using the UIRef element.

And in case I've forgotten to say this, thanks for all of 
your help on this stuff Derek. You've been a huge 
help.


From: Derek Cicerone 
[mailto:[EMAIL PROTECTED] Sent: Monday, July 10, 2006 
7:00 PMTo: Wilson, Brad; wix-devs@lists.sourceforge.net; 
wix-users@lists.sourceforge.netSubject: RE: [WiX-devs] WiX 
v3.0.1828.0 Overridable attribute causing buildbreak.


inline





From: Wilson, 
Brad [mailto:[EMAIL PROTECTED] Sent: Monday, July 10, 2006 1:57 
PMTo: 
[EMAIL PROTECTED]; wix-devs@lists.sourceforge.net; 
wix-users@lists.sourceforge.netSubject: RE: [WiX-devs] WiX v3.0.1828.0 
Overridable attribute causing buildbreak.

Thanks for the 
suggestions on cleaning up my wxs file. I try to be efficiently lazy so 
that certainly helps.

I added the 
InstallUISequence stuff when I first started working on this because I 
wasn't seeing any entries in the LanuchConditions orAppSearch tables when 
including the wixlib that clearly had entries specified.
[DerekC] 
There is no LaunchConditions table  only a LaunchCondition table. 
Elements under the InstallUISequence element create actions in the 
InstallUISequence, not rows in any other 
table.
 So I just took 
those elements out and rebuilt the wixlib. Here is the output from 
that:

?xml version="1.0" 
encoding="utf-8" ? wixLibrary version="3.0.1808.0" 
xmlns="http://schemas.microsoft.com/wix/2003/11/libraries" section type="fragment" 
xmlns="http://schemas.microsoft.com/wix/2003/04/objects" table 
name="AppSearch" tuple 
sourceLineNumber="..\ca_ICServerCheck.wxs*9" 
fieldICSERVERSITENAME/field 
 
fieldICServerCheck/field  
/tuple /table 
table name="LaunchCondition" tuple 
sourceLineNumber="..\ca_ICServerCheck.wxs*7" 
fieldICSERVERSITENAME/field 
 fieldThis application can 
not be installed on an IC Server. The install will now exit./field 
 /tuple 
/table table 
name="Property" tuple 
sourceLineNumber="..\ca_ICServerCheck.wxs*9" 
fieldICSERVERSITENAME/field 
 field / 
 field0/field 
 field0/field 
 field0/field 
 /tuple 
/table table 
name="RegLocator" tuple 
sourceLineNumber="..\ca_ICServerCheck.wxs*10" 
fieldICServerCheck/field 
 field2/field 
 fieldSOFTWARE\Interactive 
Intelligence\EIC\Directory Services\Root/field 
 fieldSITE/field 
 field2/field 
 /tuple 
/table 
/section/wixLibrary



When I build the 
wrapper install and include the wixlib, i'm not seeing those entries in the 
specified tables and the actions are not being scheduled. One thing I did 
notice is that the version of the WixLibrary says 3.0.1808.0. When I view 
the versions of the files i'm using to build everything they all say 
3.0.1828.0. Is it 
possible that the wix source wasn't updated to insert the 1828 version? Or 
do I have a version mismatchingproblem?
[DerekC] 
The wix library version is actually hard-coded. It does not need to 
match the version of the wix toolset you are using. In fact, it hardly 
ever does. The version in the wixlib files is updated when the schema of 
the wixlib file format is modified (as it was recently). It could be 
months before its updated again (or never).



Assuming that version 
1808 in the wixlib file is ok, and that I'm including the wixlib appropriately 
when calling light.exe, what else could cause the entries from the above wixlib 
file to not be created in the msi file?
[DerekC] 
You likely arent referencing anything from the Fragment. Create a 
PropertyRef Id=ICSERVERSITENAME / element in your main wix 
authoring. This will reference the Property in the Fragment and pull it 
into the product (or module). This is one of the main concepts of WiX  
creating references to build up an installation from lots of little 
pieces.




As a test I just 
removed the wixlib from being included in the wrapper install and inserted the 
Condition and Property elements directly in the wxs file for the install. 
When built, the install now has the appropriate tables and 
actions.
[DerekC] 
That makes sense because the authoring wasnt being referenced  follow the 
instructions above and it should work.



So this is either some 
problem where i'm by mistake not including the wixlib or those elements in a 
wixlib that is included in an install wrapper is not resulting in the tables and 
actions being put in the msi.





From: Derek 
Cicerone [mailto:[EMAIL PROTECTED] Sent: Monday, July 10, 2006 2:28 
PMTo: Wilson, Brad; 
wix-devs@lists.sourceforge.net; wix-users@lists.sourceforge.netSubject: RE: [WiX-devs] WiX v3.0.1828.0 
Overridable attribute causing buildbreak.
Adding wix-users to 

Re: [WiX-users] [WiX-devs] WiX v3.0.1828.0 Overridable attribute causing buildbreak.

2006-07-10 Thread Derek Cicerone








Adding wix-users to this topic  I just
noticed it was sent to wix-devs. Please only use wix-devs for discussions
of code and other internals of the WiX toolset, all discussion about using the
toolset should go to wix-users.



Its not necessary to have this
authoring:


InstallUISequence
 AppSearch Sequence=50
Overridable=yes /
 LaunchConditions Sequence=51
Overridable=yes/
 FindRelatedProducts Sequence=60
/
 /InstallUISequence



Those actions are all included automatically
when they are needed:

-
Condition
should add the LaunchConditions action at 100.

-
RegistrySearch
should add the AppSearch action at 50.

-
FindRelatedProducts
is used by the Upgrade table, so its actually not needed in the below
authoring.



You can schedule your custom actions using
the Before/After attributes, so there would be no need for using the
AppSearch, LaunchCondition, etc elements for that
either.



Other unnecessary authoring:

-
Fragment/@Id
is only needed in extremely rare circumstances. Since FragmentRef is no
longer supported, Id suggest omitting the Fragment identifiers to save
unnecessary effort.

-
Property/@ComplianceCheck
is not necessary if the value is no since its the default.

-
Specifying
a Value for a property set by a RegistrySearch is also usually not necessary
since you can more easily check for the existence of a property versus a
specific value.



It looks like relying upon the built-in capabilities
of WiX a bit more will save authoring effort as well as enable your scenarios
to work (but we should still open a bug against the Overridable attribute not
working on standard action elements).



Thanks,

Derek









From: Wilson, Brad
[mailto:[EMAIL PROTECTED] 
Sent: Monday, July 10, 2006 11:10
AM
To: [EMAIL PROTECTED];
wix-devs@lists.sourceforge.net
Subject: RE: [WiX-devs] WiX
v3.0.1828.0 Overridable attribute causing buildbreak.





The reason we wanted this functionality is
because we are trying to create wixlibs that are very specific. So for
example, I've got a wixlib and all it does is check to see if the target
machine has some other application installed on it. So here is that wxs
file:



?xml version='1.0'
encoding='UTF-8'?
Wix xmlns='http://schemas.microsoft.com/wix/2003/01/wi' xmlns:inin='http://www.inin.com/i3WixExtensions'
 Fragment Id=ca_ICServerCheck







 Condition
Message=This application can not be installed on an IC Server. The
install will now exit.![CDATA[ICSERVERSITENAME 
]]/Condition







 Property Id=ICSERVERSITENAME
Value=0 ComplianceCheck=no
 RegistrySearch Id=ICServerCheck
Root=HKLM Key=SOFTWARE\Interactive Intelligence\EIC\Directory
Services\Root Name=SITE Type=raw /
 /Property
 
 InstallUISequence
 AppSearch Sequence=50
Overridable=yes /
 LaunchConditions Sequence=51
Overridable=yes/
 FindRelatedProducts Sequence=60
/
 /InstallUISequence
 
 /Fragment
/Wix





So this wix file is built as a
wixlib.Then for any given install, all it as to do is include the
ca_ICServerCheck.wixlib file and it's included in the install. And now
when any other install needs that launch condition, it's done exactly the same
way. And if it changes, it changes for every install.



That being said, we will have lots of
custom actions that will do the same sort of thing. So we can't include
the AppSearch and LaunchConditions elements in every single
ca_*.wixlibfile because when the wrapper install is built, it sees
multiple of the same element and fails. We were hoping that the
Overridable attribute would allow for this functionality.













From: Derek
Cicerone [mailto:[EMAIL PROTECTED] 
Sent: Monday, July 10, 2006 1:20
PM
To: Wilson, Brad;
wix-devs@lists.sourceforge.net
Subject: RE: [WiX-devs] WiX
v3.0.1828.0 Overridable attribute causing buildbreak.

I see the problem now. Since the
AppSearch action is a standard action  the wix toolset defines the
overridable sequencing for the action. You cant specify
Overridable=yes because its already been declared. You can
override the standard sequencing already though, so setting the attribute
shouldnt be necessary.



Unlike custom actions, you should keep the
sequencing for standard actions, well, standard across all products that you
ship. It should not be tweaked for some products and not others.
Why are you attempting to modify the sequencing of AppSearch and
LaunchConditions? They are already sequenced so that AppSearch occurs
before LaunchConditions.



Please open a bug against this  in
the least its a documentation issue because Overridable should not be
supported on the AppSearch element. Please assign the bug to me.



Thanks,

Derek











From: Wilson, Brad
[mailto:[EMAIL PROTECTED] 
Sent: Monday, July 10, 2006 10:07
AM
To: [EMAIL PROTECTED];
wix-devs@lists.sourceforge.net
Subject: RE: [WiX-devs] WiX
v3.0.1828.0 Overridable attribute causing buildbreak.





3.0.1828.0 (it's in the subject of the
email).









From: Derek
Cicerone [mailto:[EMAIL PROTECTED] 
Sent: Monday, July 10, 2006 1:03
PM
To: Wilson, Brad;

Re: [WiX-users] [WiX-devs] WiX v3.0.1828.0 Overridable attribute causing buildbreak.

2006-07-10 Thread Wilson, Brad



Thanks for the suggestions on cleaning up my wxs 
file. I try to be efficiently lazy so that certainly 
helps.

I added the InstallUISequence stuff when I first 
started working on this because I wasn't seeing any entries in the 
LanuchConditions orAppSearch tables when including the wixlib that clearly 
had entries specified. So I just took those elements out and rebuilt the 
wixlib. Here is the output from that:

?xml version="1.0" encoding="utf-8" ? 
wixLibrary version="3.0.1808.0" xmlns="http://schemas.microsoft.com/wix/2003/11/libraries" section type="fragment" xmlns="http://schemas.microsoft.com/wix/2003/04/objects" table 
name="AppSearch" tuple 
sourceLineNumber="..\ca_ICServerCheck.wxs*9" 
fieldICSERVERSITENAME/field 
 
fieldICServerCheck/field  
/tuple /table 
table name="LaunchCondition" tuple 
sourceLineNumber="..\ca_ICServerCheck.wxs*7" 
fieldICSERVERSITENAME/field 
 fieldThis application can 
not be installed on an IC Server. The install will now exit./field 
 /tuple 
/table table 
name="Property" tuple 
sourceLineNumber="..\ca_ICServerCheck.wxs*9" 
fieldICSERVERSITENAME/field 
 field / 
 field0/field 
 field0/field 
 field0/field 
 /tuple 
/table table 
name="RegLocator" tuple 
sourceLineNumber="..\ca_ICServerCheck.wxs*10" 
fieldICServerCheck/field 
 field2/field 
 fieldSOFTWARE\Interactive 
Intelligence\EIC\Directory Services\Root/field 
 fieldSITE/field 
 field2/field 
 /tuple 
/table 
/section/wixLibrary

When I 
build the wrapper install and include the wixlib, i'm not seeing those entries 
in the specified tables and the actions are not being scheduled. One thing 
I did notice is that the version of the WixLibrary says 3.0.1808.0. When I 
view the versions of the files i'm using to build everything they all say 
3.0.1828.0. Is it possible that the wix source wasn't 
updated to insert the 1828 version? Or do I have a version 
mismatchingproblem?

Assuming that version 1808 in the wixlib file is ok, 
and that I'm including the wixlib appropriately when calling light.exe, what 
else could cause the entries from the above wixlib file to not be created in the 
msi file?


As a 
test I just removed the wixlib from being included in the wrapper install and 
inserted the Condition and Property elements directly in the wxs file for the 
install. When built, the install now has the appropriate tables and 
actions.

So 
this is either some problem where i'm by mistake not including the wixlib or 
those elements in a wixlib that is included in an install wrapper is not 
resulting in the tables and actions being put in the 
msi.



From: Derek Cicerone 
[mailto:[EMAIL PROTECTED] Sent: Monday, July 10, 2006 
2:28 PMTo: Wilson, Brad; wix-devs@lists.sourceforge.net; 
wix-users@lists.sourceforge.netSubject: RE: [WiX-devs] WiX 
v3.0.1828.0 Overridable attribute causing buildbreak.


Adding wix-users to 
this topic  I just noticed it was sent to wix-devs. Please only use 
wix-devs for discussions of code and other internals of the WiX toolset, all 
discussion about using the toolset should go to 
wix-users.

Its not necessary to 
have this authoring:
 
InstallUISequence AppSearch 
Sequence="50" Overridable="yes" / 
LaunchConditions Sequence="51" 
Overridable="yes"/ 
FindRelatedProducts Sequence="60" / 
/InstallUISequence
Those actions are all 
included automatically when they are needed:
- 
Condition 
should add the LaunchConditions action at 100.
- 
RegistrySearch 
should add the AppSearch action at 50.
- 
FindRelatedProducts is 
used by the Upgrade table, so its actually not needed in the below 
authoring.

You can schedule your 
custom actions using the Before/After attributes, so there would be no need for 
using the AppSearch, LaunchCondition, etc elements for that 
either.

Other unnecessary 
authoring:
- 
Fragment/@Id is only 
needed in extremely rare circumstances. Since FragmentRef is no longer 
supported, Id suggest omitting the Fragment identifiers to save unnecessary 
effort.
- 
Property/@ComplianceCheck 
is not necessary if the value is no since its the 
default.
- 
Specifying 
a Value for a property set by a RegistrySearch is also usually not necessary 
since you can more easily check for the existence of a property versus a 
specific value.

It looks like relying 
upon the built-in capabilities of WiX a bit more will save authoring effort as 
well as enable your scenarios to work (but we should still open a bug against 
the Overridable attribute not working on standard action 
elements).

Thanks,
Derek




From: Wilson, 
Brad [mailto:[EMAIL PROTECTED] Sent: Monday, July 10, 2006 11:10 
AMTo: 
[EMAIL PROTECTED]; wix-devs@lists.sourceforge.netSubject: RE: [WiX-devs] WiX v3.0.1828.0 
Overridable attribute causing buildbreak.

The reason we wanted 
this functionality is because we are trying to create wixlibs that are very 
specific. So for example, I've got a wixlib and all it does is check to 
see if the target machine has some other application installed on it. So 
here is that wxs file:


Re: [WiX-users] [WiX-devs] WiX v3.0.1828.0 Overridable attribute causing buildbreak.

2006-07-10 Thread Derek Cicerone








inline











From: Wilson, Brad
[mailto:[EMAIL PROTECTED] 
Sent: Monday, July 10, 2006 1:57
PM
To: [EMAIL PROTECTED];
wix-devs@lists.sourceforge.net; wix-users@lists.sourceforge.net
Subject: RE: [WiX-devs] WiX
v3.0.1828.0 Overridable attribute causing buildbreak.





Thanks for the suggestions on cleaning up
my wxs file. I try to be efficiently lazy so that certainly helps.



I added the InstallUISequence
stuff when I first started working on this because I wasn't seeing any entries
in the LanuchConditions orAppSearch tables when including the wixlib that
clearly had entries specified.

[DerekC] There is no LaunchConditions table  only a
LaunchCondition table. Elements under the InstallUISequence element
create actions in the InstallUISequence, not rows in any other table.

 So I just took those elements out
and rebuilt the wixlib. Here is the output from that:



?xml version=1.0
encoding=utf-8 ? 
wixLibrary version=3.0.1808.0
xmlns=http://schemas.microsoft.com/wix/2003/11/libraries
 section type=fragment xmlns=http://schemas.microsoft.com/wix/2003/04/objects
 table name=AppSearch
 tuple
sourceLineNumber=..\ca_ICServerCheck.wxs*9

fieldICSERVERSITENAME/field 
 fieldICServerCheck/field

 /tuple
 /table
 table name=LaunchCondition
 tuple
sourceLineNumber=..\ca_ICServerCheck.wxs*7

fieldICSERVERSITENAME/field 
 fieldThis application can
not be installed on an IC Server. The install will now exit./field 
 /tuple
 /table
 table name=Property
 tuple
sourceLineNumber=..\ca_ICServerCheck.wxs*9

fieldICSERVERSITENAME/field 
 field / 
 field0/field 
 field0/field 
 field0/field 
 /tuple
 /table
 table name=RegLocator
 tuple
sourceLineNumber=..\ca_ICServerCheck.wxs*10

fieldICServerCheck/field 
 field2/field 
 fieldSOFTWARE\Interactive
Intelligence\EIC\Directory Services\Root/field 
 fieldSITE/field 
 field2/field 
 /tuple
 /table
 /section
/wixLibrary









When I build the wrapper install and
include the wixlib, i'm not seeing those entries in the specified tables and
the actions are not being scheduled. One thing I did notice is that the
version of the WixLibrary says 3.0.1808.0. When I view the versions of
the files i'm using to build everything they all say 3.0.1828.0.
Is it possible that the wix source wasn't updated to insert the 1828
version? Or do I have a version mismatchingproblem?

[DerekC] The wix library version is actually
hard-coded. It does not need to match the version of the wix
toolset you are using. In fact, it hardly ever does. The version in
the wixlib files is updated when the schema of the wixlib file format is
modified (as it was recently). It could be months before its updated
again (or never).











Assuming that version 1808 in the wixlib
file is ok, and that I'm including the wixlib appropriately when calling
light.exe, what else could cause the entries from the above wixlib file to not
be created in the msi file?

[DerekC] You likely arent referencing anything from
the Fragment. Create a PropertyRef Id=ICSERVERSITENAME
/ element in your main wix authoring. This will reference the
Property in the Fragment and pull it into the product (or module). This
is one of the main concepts of WiX  creating references to build up an
installation from lots of little pieces.













As a test I just removed the wixlib from
being included in the wrapper install and inserted the Condition and Property
elements directly in the wxs file for the install. When built, the
install now has the appropriate tables and actions.

[DerekC] That makes sense because the authoring wasnt
being referenced  follow the instructions above and it should work.











So this is either some problem where i'm
by mistake not including the wixlib or those elements in a wixlib that is
included in an install wrapper is not resulting in the tables and actions being
put in the msi.

















From: Derek
Cicerone [mailto:[EMAIL PROTECTED] 
Sent: Monday, July 10, 2006 2:28
PM
To: Wilson, Brad;
wix-devs@lists.sourceforge.net; wix-users@lists.sourceforge.net
Subject: RE: [WiX-devs] WiX v3.0.1828.0
Overridable attribute causing buildbreak.

Adding wix-users to this topic  I
just noticed it was sent to wix-devs. Please only use wix-devs for
discussions of code and other internals of the WiX toolset, all discussion
about using the toolset should go to wix-users.



Its not necessary to have this
authoring:


InstallUISequence
 AppSearch Sequence=50
Overridable=yes /
 LaunchConditions Sequence=51
Overridable=yes/
 FindRelatedProducts Sequence=60
/
 /InstallUISequence

Those actions are all included
automatically when they are needed:

- Condition should add the LaunchConditions action at 100.

- RegistrySearch should add the AppSearch action at 50.

- FindRelatedProducts is used by the Upgrade table, so its actually
not needed in the below authoring.



You can schedule your custom actions using
the Before/After attributes, so there would be no need for using the
AppSearch, LaunchCondition, etc