Feature Requests item #1468663, was opened at 2006-04-11 18:15
Message generated for change (Comment added) made by kmierzejewski
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=642717&aid=1468663&group_id=105970
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: harvester (heat)
Group: None
Status: Open
Priority: 5
Private: No
Submitted By: danbien (danbien)
Assigned to: Nobody/Anonymous (nobody)
Summary: Add RGS support to Heat
Initial Comment:
add ability to consume rgs files to tallow
----------------------------------------------------------------------
Comment By: kamol (kmierzejewski)
Date: 2007-12-17 12:28
Message:
Logged In: YES
user_id=1961683
Originator: NO
.rgs are not the best choice, because they can contain more externally
defined variables, not just MODULE. I stopped using .rgs files some time
ago, instead I use an .idl file to define the class and interface
registration. I use some custom attributes to define ProgId, ThreadingModel
etc. This information compiled by MIDL into a .tlb file. I developed a tool
which uses it to create a .wxi. The .wxi can be included under a <wix:File>
element. It has a lot of advanteges:
all class/interface stuff is gathered in one place - .idl.
all the information can be automatically extracted and translated into a
.wxi file.
it can be done in a build step, because the generated .wxi doesn't need
any work before it's used.
examples:
.idl:
[
uuid(AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA),
helpstring("Type Library Description")
]
library LibraryName
{
[
uuid(AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA),
helpstring("Class Description"),
vi_progid("VersionIndependentProgID"),
threading("ThreadingModel")
]
coclass ClassName
{
[default] interface IUnknown;
};
};
can be automatically converted into .wxi:
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Include>
<TypeLib Id="{AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA}" Language="0"
MajorVersion="1" MinorVersion="0" Description="Type Library Description">
<Class Id="{AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA}"
Description="Class
Description" Context="InprocServer32" ThreadingModel="ThreadingModel">
<ProgId Id="VersionIndependentProgID.([EMAIL
PROTECTED])"
Description="Class Description">
<ProgId Id="VersionIndependentProgID"
Description="Class
Description"/>
</ProgId>
<?define
VersionIndependentProgID={AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA}?>
</Class>
</TypeLib>
</Include>
which is included in a <wix:File> element:
.wxs:
<File Name="...">
<?include "sample.wxi"?>
</File>
The <?define?> processing instruction is can be used in the .wxs file to
define some more registry entries (for example ImplementedCategories as
they are not known by WiX):
<RegistryKey Root="HKCR"
Key="CLSID\$(var.VersionIndependentProgId)\Implemented
Categories\!(wix.SomeCategoryId)"
Action="createAndRemoveOnUninstall"/>
I developed a tool implementing the tlb->wxi transform as described above.
It has some options to define the custom attributes (threading,vi_progid
etc.) if they are not present in the .tlb. The <?define?>s are also
inserted optionally. The tool also handles proxy registration for
interfaces.
If the WiX developers are interested, I can share my work.
----------------------------------------------------------------------
Comment By: Mike Dimmick (mikedimmick)
Date: 2006-09-22 01:28
Message:
Logged In: YES
user_id=1040952
For those unaware, an .rgs file is used by ATL projects
generated by Visual Studio to store registry information
used by self-registration (it's compiled into a resource in
the DLL).
I support this idea as it would be better to pull this
information from the source rather than trying to reverse-
engineer DllSelfRegister.
The ATL Registry parser does support extensible
dictionaries, so heat/tallow would potentially have to give
up if an unrecognised macro was encountered (basically
anything but the default MODULE for ATL 3.0), or emit a
warning.
----------------------------------------------------------------------
Comment By: Derek (derekc)
Date: 2006-04-21 09:05
Message:
Logged In: YES
user_id=518766
Are there any good docs covering the file format or APIs for
RGS files? Whoever works on this will need some sort of
specification or docs to work against.
----------------------------------------------------------------------
Comment By: Derek (derekc)
Date: 2006-04-14 18:33
Message:
Logged In: YES
user_id=518766
Updating category to Heat since Tallow will not be recieving
any further attention.
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=642717&aid=1468663&group_id=105970
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
WiX-devs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-devs