Re: [WiX-users] Duplicate symbol when using CompilerCore.CreateWixSimpleReferenceRow

2013-07-22 Thread John Ludlow
Ok, minor facepalm moment here.

It turned out that my component library project had a reference to my
action library from when I was testing the action out before turning it
into an extension. When this was combined with the reference created from
the code, this created two references to the same thing in the same code,
which gave me the error.

I removed that and it worked just fine. The lesson to learn from this is to
double-check those references if you get into these issues.

I'm considering raising a bug because a) this error was kind of bogus in
that the second reference could have been safely ignored, and b) the error
message didn't really point to the reference on the component library
project. It was only when I was ready to give up and abandon the
'wixlib-in-the-dll' idea as a bad job that I spotted this extra reference.

Thanks for the help



On 11 July 2013 17:44, John Ludlow john.ludlow...@gmail.com wrote:

 @Nick:

 Yes, I'm trying to use the extension in a library which is then used in a
 setup project. The resulting project relationships would be something like
 this:
 https://docs.google.com/file/d/0BzqWyEdx-NBBeDM5ZlJGejRoNE0/edit?usp=sharing

 The reason for this is that the setup project is just metadata related to
 the MSI itself. This makes it easy to include those components in some
 other setup, or even a merge module, just by adding the correct references
 to the correct projects. Is this not common practice?

 The other reason is that our body of setup code is sufficiently large that
 we need to split it up somehow.

 @Blair:

The original error appears to be due to missing code in the extension.

 I'm not sure what missing code you were referring to here.


 On 11 July 2013 02:50, Blair Murri os...@live.com wrote:

 There are several ways to make the *Ref. One way is to author a *Ref/
 element. Another is to use CompilerCore.CreateWixSimpleReferenceRow().
 Either works the same as the other.

 The original error appears to be due to missing code in the extension.
 The second error (caused by trying to workaround that first error) appears
 to be caused by making an explicit reference to the wixlib that the
 extension contains along with the extension (causing double references).

  Date: Wed, 10 Jul 2013 13:57:00 -0700
  From: nickra...@hotmail.com
  To: wix-users@lists.sourceforge.net
  Subject: Re: [WiX-users] Duplicate symbol when using
 CompilerCore.CreateWixSimpleReferenceRow
 
  Okay, I maybe wasn't fully understanding the problem. :) So, you're
 saying
  that you want to use your extension in another WIXLIB (unrelated to the
  WIXLIB you used to build your extension)...but when you try that, but
 don't
  reference the extension in your Setup project too, you get the error
 Cannot
  find the table definitions for
 
  As far as I can tell, you need to have the project reference for the
  extension in both the WIXLIB and the Setup project.
 
  To make your WIXLIB work, i.e. to pull the contents of the WIXLIB into
 your
  MSI (this may be the part you're missing?), you need to put a Property
 in
  the WIXLIB and then use a PropertyRef that points to that Property in
 your
  Setup file. This creates the link between the library and the MSI,
 pulling
  in all of the contents (your components, your new extension elements,
 etc.)
  that are in the library's Fragment into the MSI.
 
 
 
  --
  View this message in context:
 http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Duplicate-symbol-when-using-CompilerCore-CreateWixSimpleReferenceRow-tp7587243p7587281.html
  Sent from the wix-users mailing list archive at Nabble.com.
 
 
 --
  See everything from the browser to the database with AppDynamics
  Get end-to-end visibility with application monitoring from AppDynamics
  Isolate bottlenecks and diagnose root cause in seconds.
  Start your free trial of AppDynamics Pro today!
 
 http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk
  ___
  WiX-users mailing list
  WiX-users@lists.sourceforge.net
  https://lists.sourceforge.net/lists/listinfo/wix-users


 --
 See everything from the browser to the database with AppDynamics
 Get end-to-end visibility with application monitoring from AppDynamics
 Isolate bottlenecks and diagnose root cause in seconds.
 Start your free trial of AppDynamics Pro today!

 http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk
 ___
 WiX-users mailing list
 WiX-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/wix-users



--
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics

Re: [WiX-users] Duplicate symbol when using CompilerCore.CreateWixSimpleReferenceRow

2013-07-11 Thread John Ludlow
@Nick:

Yes, I'm trying to use the extension in a library which is then used in a
setup project. The resulting project relationships would be something like
this:
https://docs.google.com/file/d/0BzqWyEdx-NBBeDM5ZlJGejRoNE0/edit?usp=sharing

The reason for this is that the setup project is just metadata related to
the MSI itself. This makes it easy to include those components in some
other setup, or even a merge module, just by adding the correct references
to the correct projects. Is this not common practice?

The other reason is that our body of setup code is sufficiently large that
we need to split it up somehow.

@Blair:

   The original error appears to be due to missing code in the extension.

I'm not sure what missing code you were referring to here.


On 11 July 2013 02:50, Blair Murri os...@live.com wrote:

 There are several ways to make the *Ref. One way is to author a *Ref/
 element. Another is to use CompilerCore.CreateWixSimpleReferenceRow().
 Either works the same as the other.

 The original error appears to be due to missing code in the extension. The
 second error (caused by trying to workaround that first error) appears to
 be caused by making an explicit reference to the wixlib that the extension
 contains along with the extension (causing double references).

  Date: Wed, 10 Jul 2013 13:57:00 -0700
  From: nickra...@hotmail.com
  To: wix-users@lists.sourceforge.net
  Subject: Re: [WiX-users] Duplicate symbol when using
 CompilerCore.CreateWixSimpleReferenceRow
 
  Okay, I maybe wasn't fully understanding the problem. :) So, you're
 saying
  that you want to use your extension in another WIXLIB (unrelated to the
  WIXLIB you used to build your extension)...but when you try that, but
 don't
  reference the extension in your Setup project too, you get the error
 Cannot
  find the table definitions for
 
  As far as I can tell, you need to have the project reference for the
  extension in both the WIXLIB and the Setup project.
 
  To make your WIXLIB work, i.e. to pull the contents of the WIXLIB into
 your
  MSI (this may be the part you're missing?), you need to put a Property in
  the WIXLIB and then use a PropertyRef that points to that Property in
 your
  Setup file. This creates the link between the library and the MSI,
 pulling
  in all of the contents (your components, your new extension elements,
 etc.)
  that are in the library's Fragment into the MSI.
 
 
 
  --
  View this message in context:
 http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Duplicate-symbol-when-using-CompilerCore-CreateWixSimpleReferenceRow-tp7587243p7587281.html
  Sent from the wix-users mailing list archive at Nabble.com.
 
 
 --
  See everything from the browser to the database with AppDynamics
  Get end-to-end visibility with application monitoring from AppDynamics
  Isolate bottlenecks and diagnose root cause in seconds.
  Start your free trial of AppDynamics Pro today!
 
 http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk
  ___
  WiX-users mailing list
  WiX-users@lists.sourceforge.net
  https://lists.sourceforge.net/lists/listinfo/wix-users


 --
 See everything from the browser to the database with AppDynamics
 Get end-to-end visibility with application monitoring from AppDynamics
 Isolate bottlenecks and diagnose root cause in seconds.
 Start your free trial of AppDynamics Pro today!
 http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk
 ___
 WiX-users mailing list
 WiX-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/wix-users

--
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Duplicate symbol when using CompilerCore.CreateWixSimpleReferenceRow

2013-07-10 Thread Blair Murri
A WixExtension used in the way you describe usually supplies three things: a 
CompilerExtension (to parse your new elements and attributes), a Table 
definition (comes from a tables.xml-style file with the definitions of the 
tables unique to your extension), and a binary-wixlib (containing your CAs and 
related authoring).
 
Usually your CompilerExtension will supply two things: references to items in 
your wixlib, and rows into your tables (from the authoring you parse). Those 
rows are not part of your wixlib.
 
CreateWixSimpleReferenceRow creates a reference to a row that needs to be 
supplied from elsewhere, usually the wixlib supplied by the extension.
 
If the WixExtension supplies the wixlib, you don't need to supply it. Also, if 
the WixExtension supplies the table definitions (via the tables.xml-style 
file), you don't need to duplicate the table definitions in your wixlib (using 
CustomTable elements).
 
Also, make sure that your extension is supplied to both candle and light in 
your build script.
 
I would guess that you are missing the tables.xml-style reference in your 
WixExtension (which I suspect is the source of your missing error), and that 
you are supplying the wixlib used in your extension directly to your setup 
project (which I suspect is the source of your duplicate symbol).
 
 From: john.ludlow...@gmail.com
 Date: Wed, 10 Jul 2013 12:25:38 +0100
 To: wix-users@lists.sourceforge.net
 Subject: [WiX-users] Duplicate symbol when using  
 CompilerCore.CreateWixSimpleReferenceRow
 
 Hi,
 
 My installer has two projects - a Setup Project which emits an .MSI and
 contains install metadata, and a Setup Library Project which emits a
 .wixlib which contains install components. The latter makes use of a
 compiler extension which generates an MSI table based on some child
 elements of the File element. In other words, it looks like this:
 
 File
myext:MyFunkyExtension/
 /File
 
 (attributes omitted for brevity)
 
 The extension consists of three projects: a C# class library for the actual
 extension, a C++ Custom Action Library for the custom actions that will use
 the data in the table, and a wixlib to hold the custom action definition.
 The CA DLL is bound into the wixlib, and the wixlib is included in the
 extension dll project as an embedded resource.
 
 Now here comes the issue...
 
 When I reference the extension DLL from just the wixlib which has the
 components in, I get this error:
 
 Error 1 Cannot find the table definitions for the 'MyTable' table.  This is
 likely due to a typing error or missing extension.  Please ensure all the
 necessary extensions are supplied on the command line with the -ext
 parameter. light.exe 0 1 MyInstall
 
 I wondered if the setup project needed the reference as well, but when I
 add that I get this:
 Error 1 Duplicate symbol 'CustomAction:MyCA' found. This typically means
 that an Id is duplicated. Check to make sure all your identifiers of a
 given type (File, Component, Feature) are unique.
 MyComponentSetupLibrary.wixlib 0 1 MyInstall
 
 I reckon this is down to this code at the end of the ParseElement methjod
 in the extension:
 
Core.CreateWixSimpleReferenceRow(ln, CustomAction, MyCA);
 I did this on the suggestion of the Wix 3.6 Development Guide (Chapter 14)
 in order to create a reference to the action in order to pull the fragment
 into the installation.
 
 I also noticed that my ParseElement method seems to get called twice. Is
 this because I have 2 references from my projects (one from my setup
 project and one from my setup library project)? This is odd - I thought you
 could reference things as many times as you liked in this manner, and if it
 was already there then it would just ignore it.
 
 Any hints would be greatly appreciated.
 
 Thanks
 
 John
 --
 See everything from the browser to the database with AppDynamics
 Get end-to-end visibility with application monitoring from AppDynamics
 Isolate bottlenecks and diagnose root cause in seconds.
 Start your free trial of AppDynamics Pro today!
 http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk
 ___
 WiX-users mailing list
 WiX-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/wix-users
  
--
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Duplicate symbol when using CompilerCore.CreateWixSimpleReferenceRow

2013-07-10 Thread John Ludlow
Hi Blair,

Ok, does that mean I've encountered an error in the book, then? The book
suggests adding the wixlib to the extension, and I've done that (means I
should only have to reference the extension, not the wixlib, right?).

However, the sample code in the book does not come with a test install
which shows how to reference it, nor is this discussed in the book in any
detail. I was going to create one but have not had the time yet, so I'm not
sure if the code in the book works or not. (Wouldn't be the first time I've
come across sample code in a book that doesn't compile).

I got that the extension needs to be supplied to both (though, honestly,
it's a bit annoying having to propagate the references). That's obviously
why the first error appeared.

It made sense that this was because I was referencing it twice, but I
figured the book was probably correct and I was missing something (and I
didn't want to just remove the line so it worked temporarily). It would
probably be a good improvement to have this behave like I described above -
you can only declare something once, but you can create as many references
as you like to it, even if those references are technically duplicates of
each other.

In  the meantime, I'll remove that line.

Thanks

PS: I'm still planning to write this up as a tutorial, but I just want to
get stuff like this sorted first


On 10 July 2013 14:46, Blair Murri os...@live.com wrote:

 A WixExtension used in the way you describe usually supplies three things:
 a CompilerExtension (to parse your new elements and attributes), a Table
 definition (comes from a tables.xml-style file with the definitions of the
 tables unique to your extension), and a binary-wixlib (containing your CAs
 and related authoring).

 Usually your CompilerExtension will supply two things: references to items
 in your wixlib, and rows into your tables (from the authoring you parse).
 Those rows are not part of your wixlib.

 CreateWixSimpleReferenceRow creates a reference to a row that needs to be
 supplied from elsewhere, usually the wixlib supplied by the extension.

 If the WixExtension supplies the wixlib, you don't need to supply it.
 Also, if the WixExtension supplies the table definitions (via the
 tables.xml-style file), you don't need to duplicate the table definitions
 in your wixlib (using CustomTable elements).

 Also, make sure that your extension is supplied to both candle and light
 in your build script.

 I would guess that you are missing the tables.xml-style reference in your
 WixExtension (which I suspect is the source of your missing error), and
 that you are supplying the wixlib used in your extension directly to your
 setup project (which I suspect is the source of your duplicate symbol).

  From: john.ludlow...@gmail.com
  Date: Wed, 10 Jul 2013 12:25:38 +0100
  To: wix-users@lists.sourceforge.net
  Subject: [WiX-users] Duplicate symbol when using
  CompilerCore.CreateWixSimpleReferenceRow
 
  Hi,
 
  My installer has two projects - a Setup Project which emits an .MSI and
  contains install metadata, and a Setup Library Project which emits a
  .wixlib which contains install components. The latter makes use of a
  compiler extension which generates an MSI table based on some child
  elements of the File element. In other words, it looks like this:
 
  File
 myext:MyFunkyExtension/
  /File
 
  (attributes omitted for brevity)
 
  The extension consists of three projects: a C# class library for the
 actual
  extension, a C++ Custom Action Library for the custom actions that will
 use
  the data in the table, and a wixlib to hold the custom action definition.
  The CA DLL is bound into the wixlib, and the wixlib is included in the
  extension dll project as an embedded resource.
 
  Now here comes the issue...
 
  When I reference the extension DLL from just the wixlib which has the
  components in, I get this error:
 
  Error 1 Cannot find the table definitions for the 'MyTable' table.  This
 is
  likely due to a typing error or missing extension.  Please ensure all the
  necessary extensions are supplied on the command line with the -ext
  parameter. light.exe 0 1 MyInstall
 
  I wondered if the setup project needed the reference as well, but when I
  add that I get this:
  Error 1 Duplicate symbol 'CustomAction:MyCA' found. This typically means
  that an Id is duplicated. Check to make sure all your identifiers of a
  given type (File, Component, Feature) are unique.
  MyComponentSetupLibrary.wixlib 0 1 MyInstall
 
  I reckon this is down to this code at the end of the ParseElement methjod
  in the extension:
 
 Core.CreateWixSimpleReferenceRow(ln, CustomAction, MyCA);
  I did this on the suggestion of the Wix 3.6 Development Guide (Chapter
 14)
  in order to create a reference to the action in order to pull the
 fragment
  into the installation.
 
  I also noticed that my ParseElement method seems to get called twice. Is
  this because I have 2 references from my projects (one 

Re: [WiX-users] Duplicate symbol when using CompilerCore.CreateWixSimpleReferenceRow

2013-07-10 Thread Blair Murri
John,
 
Yes, you put the wixlib only into the extension, and that allows you to have 
your setup project only reference the extension and not the wixlib directly.
 
The setup project references the extension in a similar fashion to the 
toolset-supplied extensions, except that the path (including the .dll at the 
end of the filename) need to be supplied (done for you by Votive).
 
I haven't looked that the example in the book (yet). 
 
You supply the table definitions by overriding the TableDefinitions property 
similar to this:
 
private TableDefinitionCollection tableDefinitions;
public override TableDefinitionCollection TableDefinitions
{
get
{
if (null == this.tableDefinitions)
{
this.tableDefinitions = 
LoadTableDefinitionsHelper(Assembly.GetExecutingAssembly(), 
assembly-resource-prefix.tables.xml);
}
return this.tableDefinitions;
}
}
 
(looks very similar to the code used to supply the wixlib -- the GetLibrary() 
override you had to use to have the extension supply your wixlib)
 
You place the tables.xml file into your managed resources a similar way as you 
do your wixlib.
 
The tables.xml file uses the tableDefinitions schema 
(http://schemas.microsoft.com/wix/2006/tables), the xsd of which is only in the 
sources (src\wix\Xsd\tables.xsd). Only supply attributes that are not required 
if you need to override the default value. The TablesYesNoType type defaults to 
no, and most of the attributes come from MSDN and end up in the table 
validation 
metadata.

Blair
 
 From: john.ludlow...@gmail.com
 Date: Wed, 10 Jul 2013 15:20:56 +0100
 To: wix-users@lists.sourceforge.net
 Subject: Re: [WiX-users] Duplicate symbol when using  
 CompilerCore.CreateWixSimpleReferenceRow
 
 Hi Blair,
 
 Ok, does that mean I've encountered an error in the book, then? The book
 suggests adding the wixlib to the extension, and I've done that (means I
 should only have to reference the extension, not the wixlib, right?).
 
 However, the sample code in the book does not come with a test install
 which shows how to reference it, nor is this discussed in the book in any
 detail. I was going to create one but have not had the time yet, so I'm not
 sure if the code in the book works or not. (Wouldn't be the first time I've
 come across sample code in a book that doesn't compile).
 
 I got that the extension needs to be supplied to both (though, honestly,
 it's a bit annoying having to propagate the references). That's obviously
 why the first error appeared.
 
 It made sense that this was because I was referencing it twice, but I
 figured the book was probably correct and I was missing something (and I
 didn't want to just remove the line so it worked temporarily). It would
 probably be a good improvement to have this behave like I described above -
 you can only declare something once, but you can create as many references
 as you like to it, even if those references are technically duplicates of
 each other.
 
 In  the meantime, I'll remove that line.
 
 Thanks
 
 PS: I'm still planning to write this up as a tutorial, but I just want to
 get stuff like this sorted first
 
 
 On 10 July 2013 14:46, Blair Murri os...@live.com wrote:
 
  A WixExtension used in the way you describe usually supplies three things:
  a CompilerExtension (to parse your new elements and attributes), a Table
  definition (comes from a tables.xml-style file with the definitions of the
  tables unique to your extension), and a binary-wixlib (containing your CAs
  and related authoring).
 
  Usually your CompilerExtension will supply two things: references to items
  in your wixlib, and rows into your tables (from the authoring you parse).
  Those rows are not part of your wixlib.
 
  CreateWixSimpleReferenceRow creates a reference to a row that needs to be
  supplied from elsewhere, usually the wixlib supplied by the extension.
 
  If the WixExtension supplies the wixlib, you don't need to supply it.
  Also, if the WixExtension supplies the table definitions (via the
  tables.xml-style file), you don't need to duplicate the table definitions
  in your wixlib (using CustomTable elements).
 
  Also, make sure that your extension is supplied to both candle and light
  in your build script.
 
  I would guess that you are missing the tables.xml-style reference in your
  WixExtension (which I suspect is the source of your missing error), and
  that you are supplying the wixlib used in your extension directly to your
  setup project (which I suspect is the source of your duplicate symbol).
 
   From: john.ludlow...@gmail.com
   Date: Wed, 10 Jul 2013 12:25:38 +0100
   To: wix-users@lists.sourceforge.net
   Subject: [WiX-users] Duplicate symbol when using
   CompilerCore.CreateWixSimpleReferenceRow
  
   Hi,
  
   My installer has two projects - a Setup Project which emits an .MSI and
   contains install metadata, and a Setup Library Project which emits a
   .wixlib which contains install components

Re: [WiX-users] Duplicate symbol when using CompilerCore.CreateWixSimpleReferenceRow

2013-07-10 Thread John Ludlow
Blair,

Yes I have the tables.xml correctly referenced as described above.  The
error has disappeared.  If this pattern is idiomatic for this type of
extension, I'm happy.

My points above were

  *  The only widely available documentation for this appears to have an
error
  *  It would have been better if WiX had not thrown this error and instead
simply thrown the second reference away (I can't see any way this might be
dangerous, since a reference is just a reference).

If I'm missing anything with either of those points, please let me know.

If I have any further questions, I'll be back in touch :)

Thanks for your help

John


On 10 July 2013 15:51, Blair Murri os...@live.com wrote:

 John,

 Yes, you put the wixlib only into the extension, and that allows you to
 have your setup project only reference the extension and not the wixlib
 directly.

 The setup project references the extension in a similar fashion to the
 toolset-supplied extensions, except that the path (including the .dll at
 the end of the filename) need to be supplied (done for you by Votive).

 I haven't looked that the example in the book (yet).

 You supply the table definitions by overriding the TableDefinitions
 property similar to this:

 private TableDefinitionCollection tableDefinitions;
 public override TableDefinitionCollection TableDefinitions
 {
 get
 {
 if (null == this.tableDefinitions)
 {
 this.tableDefinitions =
 LoadTableDefinitionsHelper(Assembly.GetExecutingAssembly(),
 assembly-resource-prefix.tables.xml);
 }
 return this.tableDefinitions;
 }
 }

 (looks very similar to the code used to supply the wixlib -- the
 GetLibrary() override you had to use to have the extension supply your
 wixlib)

 You place the tables.xml file into your managed resources a similar way as
 you do your wixlib.

 The tables.xml file uses the tableDefinitions schema (
 http://schemas.microsoft.com/wix/2006/tables), the xsd of which is only
 in the sources (src\wix\Xsd\tables.xsd). Only supply attributes that are
 not required if you need to override the default value. The TablesYesNoType
 type defaults to no, and most of the attributes come from MSDN and end up
 in the table validation
 metadata.

 Blair

  From: john.ludlow...@gmail.com
  Date: Wed, 10 Jul 2013 15:20:56 +0100
  To: wix-users@lists.sourceforge.net
  Subject: Re: [WiX-users] Duplicate symbol when using
  CompilerCore.CreateWixSimpleReferenceRow
 
  Hi Blair,
 
  Ok, does that mean I've encountered an error in the book, then? The book
  suggests adding the wixlib to the extension, and I've done that (means I
  should only have to reference the extension, not the wixlib, right?).
 
  However, the sample code in the book does not come with a test install
  which shows how to reference it, nor is this discussed in the book in any
  detail. I was going to create one but have not had the time yet, so I'm
 not
  sure if the code in the book works or not. (Wouldn't be the first time
 I've
  come across sample code in a book that doesn't compile).
 
  I got that the extension needs to be supplied to both (though, honestly,
  it's a bit annoying having to propagate the references). That's obviously
  why the first error appeared.
 
  It made sense that this was because I was referencing it twice, but I
  figured the book was probably correct and I was missing something (and I
  didn't want to just remove the line so it worked temporarily). It would
  probably be a good improvement to have this behave like I described
 above -
  you can only declare something once, but you can create as many
 references
  as you like to it, even if those references are technically duplicates of
  each other.
 
  In  the meantime, I'll remove that line.
 
  Thanks
 
  PS: I'm still planning to write this up as a tutorial, but I just want to
  get stuff like this sorted first
 
 
  On 10 July 2013 14:46, Blair Murri os...@live.com wrote:
 
   A WixExtension used in the way you describe usually supplies three
 things:
   a CompilerExtension (to parse your new elements and attributes), a
 Table
   definition (comes from a tables.xml-style file with the definitions of
 the
   tables unique to your extension), and a binary-wixlib (containing your
 CAs
   and related authoring).
  
   Usually your CompilerExtension will supply two things: references to
 items
   in your wixlib, and rows into your tables (from the authoring you
 parse).
   Those rows are not part of your wixlib.
  
   CreateWixSimpleReferenceRow creates a reference to a row that needs to
 be
   supplied from elsewhere, usually the wixlib supplied by the extension.
  
   If the WixExtension supplies the wixlib, you don't need to supply it.
   Also, if the WixExtension supplies the table definitions (via the
   tables.xml-style file), you don't need to duplicate the table
 definitions
   in your wixlib (using CustomTable elements).
  
   Also, make sure that your extension is supplied

Re: [WiX-users] Duplicate symbol when using CompilerCore.CreateWixSimpleReferenceRow

2013-07-10 Thread Nick Ramirez
You should be able to download the example for that chapter at the Packt
publishers (packtpub.com) site. On the page that shows the details about the
book, click the tab that says Support and there ought to be a Code
Downloads link.



--
View this message in context: 
http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Duplicate-symbol-when-using-CompilerCore-CreateWixSimpleReferenceRow-tp7587243p7587260.html
Sent from the wix-users mailing list archive at Nabble.com.

--
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Duplicate symbol when using CompilerCore.CreateWixSimpleReferenceRow

2013-07-10 Thread John Ludlow
Yup, did that - that's how I know there's no test installer for it.

When I removed that line, the install compiled but without the action.
 I'll add a test install to the sample, and see what I get. I just haven't
had time to do that today, unfortunately.


On 10 July 2013 17:47, Nick Ramirez nickra...@hotmail.com wrote:

 You should be able to download the example for that chapter at the Packt
 publishers (packtpub.com) site. On the page that shows the details about
 the
 book, click the tab that says Support and there ought to be a Code
 Downloads link.



 --
 View this message in context:
 http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Duplicate-symbol-when-using-CompilerCore-CreateWixSimpleReferenceRow-tp7587243p7587260.html
 Sent from the wix-users mailing list archive at Nabble.com.


 --
 See everything from the browser to the database with AppDynamics
 Get end-to-end visibility with application monitoring from AppDynamics
 Isolate bottlenecks and diagnose root cause in seconds.
 Start your free trial of AppDynamics Pro today!
 http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk
 ___
 WiX-users mailing list
 WiX-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/wix-users

--
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Duplicate symbol when using CompilerCore.CreateWixSimpleReferenceRow

2013-07-10 Thread Nick Ramirez
Okay, I maybe wasn't fully understanding the problem. :) So, you're saying
that you want to use your extension in another WIXLIB (unrelated to the
WIXLIB you used to build your extension)...but when you try that, but don't
reference the extension in your Setup project too, you get the error Cannot
find the table definitions for 

As far as I can tell, you need to have the project reference for the
extension in both the WIXLIB and the Setup project. 

To make your WIXLIB work, i.e. to pull the contents of the WIXLIB into your
MSI (this may be the part you're missing?), you need to put a Property in
the WIXLIB and then use a PropertyRef that points to that Property in your
Setup file. This creates the link between the library and the MSI, pulling
in all of the contents (your components, your new extension elements, etc.)
that are in the library's Fragment into the MSI.



--
View this message in context: 
http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Duplicate-symbol-when-using-CompilerCore-CreateWixSimpleReferenceRow-tp7587243p7587281.html
Sent from the wix-users mailing list archive at Nabble.com.

--
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Duplicate symbol when using CompilerCore.CreateWixSimpleReferenceRow

2013-07-10 Thread Blair Murri
There are several ways to make the *Ref. One way is to author a *Ref/ 
element. Another is to use CompilerCore.CreateWixSimpleReferenceRow(). Either 
works the same as the other.
 
The original error appears to be due to missing code in the extension. The 
second error (caused by trying to workaround that first error) appears to be 
caused by making an explicit reference to the wixlib that the extension 
contains along with the extension (causing double references).
 
 Date: Wed, 10 Jul 2013 13:57:00 -0700
 From: nickra...@hotmail.com
 To: wix-users@lists.sourceforge.net
 Subject: Re: [WiX-users] Duplicate symbol when using 
 CompilerCore.CreateWixSimpleReferenceRow
 
 Okay, I maybe wasn't fully understanding the problem. :) So, you're saying
 that you want to use your extension in another WIXLIB (unrelated to the
 WIXLIB you used to build your extension)...but when you try that, but don't
 reference the extension in your Setup project too, you get the error Cannot
 find the table definitions for 
 
 As far as I can tell, you need to have the project reference for the
 extension in both the WIXLIB and the Setup project. 
 
 To make your WIXLIB work, i.e. to pull the contents of the WIXLIB into your
 MSI (this may be the part you're missing?), you need to put a Property in
 the WIXLIB and then use a PropertyRef that points to that Property in your
 Setup file. This creates the link between the library and the MSI, pulling
 in all of the contents (your components, your new extension elements, etc.)
 that are in the library's Fragment into the MSI.
 
 
 
 --
 View this message in context: 
 http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Duplicate-symbol-when-using-CompilerCore-CreateWixSimpleReferenceRow-tp7587243p7587281.html
 Sent from the wix-users mailing list archive at Nabble.com.
 
 --
 See everything from the browser to the database with AppDynamics
 Get end-to-end visibility with application monitoring from AppDynamics
 Isolate bottlenecks and diagnose root cause in seconds.
 Start your free trial of AppDynamics Pro today!
 http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk
 ___
 WiX-users mailing list
 WiX-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/wix-users
  
--
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users