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=48808831&iu=/4140/ostg.clktrk
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to