Ok, I found a process that works...

First, I had to explicitly add:

      <InstallExecuteSequence>
          <UnregisterClassInfo Sequence="2700" />
          <UnregisterProgIdInfo Sequence="2900"/>
          <UnregisterTypeLibraries Sequence="2300"/>
          <RegisterClassInfo Sequence='4600' />
          <RegisterProgIdInfo Sequence='4800' />
          <RegisterTypeLibraries Sequence='5500' />
    </InstallExecuteSequence>

then for each .net com dll, i ran heat against it to generate a wxs.

I then fixedup those wxs files in the following manner:
1. Wrap the Class/ProgID/etc tags inside the File tag so that class/@server
gets set
2. Update the registry values that referred to mscoree.dll so that they each
have a unique id in the Id attribute.

That combination get me functioning .Net COM DLLs, and now that I fully
understand what's happening, it makes sense. The default sequence doesn't
include the com registration actions that read the class table/etc. So those
have to be added. The heat output doesn't nest the class tags in the file
tag, so server attribute doesn't know what it's target is. The registry
values for mscoree.dll are in conflict with the autogenerated ones made form
the class tag, because they both use autogenerated ids, which are a hash of
componentId, root, key, and name... And so they need to be differentiate by
assigning a unique id.

I'm quite relieved I got it worked out.

Thanks,
Troy



On Tue, Sep 30, 2008 at 9:51 PM, Troy Howard <[EMAIL PROTECTED]> wrote:

> It's both.
>
> The application is written in VB6. It uses COM DLLs written in various
> languages, including C++, VB6, and .NET. The installer needs to be able to
> register all of these things.
>
> The non-.Net COM DLLs seem to be doing alright with the SelfRegCost
> attribute applied, but now the .Net DLLs are having trouble. I've tried
> various ways to get them working.
>
> What I'm currently looking at is the RegisterClassInfo/ProgID/TypeLib
> actions. I opened the MSI up in ORCA, and realized that they are not in my
> InstallExecuteSequence table. That makes sense why it wasn't working with
> Class/Progid etc elements in the components. The action was never getting
> called that dealt with those things. I assumed those actions would be
> included, and that I didn't to explicitly add them. I'm going to give it a
> try with the "correct" methodology again, this time with the correct actions
> in the sequence and see if that does the trick. If so, I can get rid of the
> self registration stuff, AND the duct tape batch file full of regasm calls.
>
> Conveniently, re-ghosting the test box and building the installer take
> about the same amount of time.. >sigh<
>
> This application is a beast, and the installer has to tame it. What a
> project.... At least I have a nice view of downtown Portland at night from
> the 11th floor of this building.
>
> Thanks,
> Troy
>
>
>
> On Tue, Sep 30, 2008 at 8:10 PM, Richard <[EMAIL PROTECTED]> wrote:
>
>>
>> In article <[EMAIL PROTECTED]>,
>>    "Troy Howard" <[EMAIL PROTECTED]>  writes:
>>
>> > So, in my efforts to resolve the .Net COM issues, [...]
>>
>> Earlier, this thread was talking about registering a VB6 control.
>>
>> Now you're talking about registering a .NET assembly for COM interop.
>>
>> So which is it?
>>
>> I've registered .NET assemblies for COM interop with no problems by
>> taking the output of /regfile.
>> --
>> "The Direct3D Graphics Pipeline" -- DirectX 9 draft available for download
>>      
>> <http://www.xmission.com/~legalize/book/download/index.html<http://www.xmission.com/%7Elegalize/book/download/index.html>
>> >
>>
>>        Legalize Adulthood! <http://blogs.xmission.com/legalize/>
>>
>> -------------------------------------------------------------------------
>> This SF.Net email is sponsored by the Moblin Your Move Developer's
>> challenge
>> Build the coolest Linux based applications with Moblin SDK & win great
>> prizes
>> Grand prize is a trip for two to an Open Source event anywhere in the
>> world
>> http://moblin-contest.org/redirect.php?banner_id=100&url=/
>> _______________________________________________
>> WiX-users mailing list
>> WiX-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/wix-users
>>
>
>
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to