[wix-devs] WixComPlusExtension Status Update 4

Hoover, Jacob Jacob.Hoover at greenheck.com
Fri Sep 6 10:12:22 PDT 2019


When I read the docs on https://docs.microsoft.com/en-us/windows/win32/api/comadmin/nf-comadmin-icomadmincatalog-importcomponent it implies to me that the in proc, normal COM registration, needs to be done before the calls to it.  There has to be missing bits in your component registration.

Outside of WiX, have you verified on a clean VM, that if you have only the Interface\{GUID}\@Default="I..." and Interface\{GUID}\ProxyStubClsid32\@Default="{GUID}" in place that the ImportComponent call actually works? If you manually create those 2 entries, does the install succeed?


-----Original Message-----
From: Allen, Eric M. (Tax&Accounting Prof) [mailto:eric.allen at thomsonreuters.com] 
Sent: Friday, September 6, 2019 11:43 AM
To: Hoover, Jacob <Jacob.Hoover at greenheck.com>; WiX Toolset Developer Mailing List <wix-devs at lists.wixtoolset.org>
Subject: RE: WixComPlusExtension Status Update 4

Okay, I suppose in the end what I need to deploy in production can't be called a COM Component, but rather a "thing that looks enough like a com component that if you relax the rules you can get away with treating it like one".

-----Original Message-----
From: Hoover, Jacob <Jacob.Hoover at greenheck.com>
Sent: Friday, September 06, 2019 11:58 AM
To: Allen, Eric M. (Tax&Accounting Prof) <eric.allen at thomsonreuters.com>; WiX Toolset Developer Mailing List <wix-devs at lists.wixtoolset.org>
Subject: RE: WixComPlusExtension Status Update 4

Right, but in order for it to be a COM Component, it's going to expose DllRegisterServer.  And heat will harvest from there.

-----Original Message-----
From: Allen, Eric M. (Tax&Accounting Prof) [mailto:eric.allen at thomsonreuters.com]
Sent: Friday, September 6, 2019 10:56 AM
To: Hoover, Jacob <Jacob.Hoover at greenheck.com>; WiX Toolset Developer Mailing List <wix-devs at lists.wixtoolset.org>
Subject: RE: WixComPlusExtension Status Update 4

In the production case, it is not.

-----Original Message-----
From: Hoover, Jacob <Jacob.Hoover at greenheck.com>
Sent: Friday, September 06, 2019 11:54 AM
To: Allen, Eric M. (Tax&Accounting Prof) <eric.allen at thomsonreuters.com>; WiX Toolset Developer Mailing List <wix-devs at lists.wixtoolset.org>
Subject: RE: WixComPlusExtension Status Update 4

Is the TLB not exposed from the DLL as a resource? (Heat can harvest that as well.)

-----Original Message-----
From: Allen, Eric M. (Tax&Accounting Prof) [mailto:eric.allen at thomsonreuters.com]
Sent: Friday, September 6, 2019 10:51 AM
To: Hoover, Jacob <Jacob.Hoover at greenheck.com>; WiX Toolset Developer Mailing List <wix-devs at lists.wixtoolset.org>
Subject: RE: WixComPlusExtension Status Update 4

For the production case motivating the issue, there is no available TLB.

-----Original Message-----
From: Hoover, Jacob <Jacob.Hoover at greenheck.com>
Sent: Friday, September 06, 2019 11:45 AM
To: Allen, Eric M. (Tax&Accounting Prof) <eric.allen at thomsonreuters.com>; WiX Toolset Developer Mailing List <wix-devs at lists.wixtoolset.org>
Subject: RE: WixComPlusExtension Status Update 4

Have you tried running heat against your tlb instead of using the Class/Interface elements?


-----Original Message-----
From: Allen, Eric M. (Tax&Accounting Prof) [mailto:eric.allen at thomsonreuters.com]
Sent: Friday, September 6, 2019 10:14 AM
To: Hoover, Jacob <Jacob.Hoover at greenheck.com>; WiX Toolset Developer Mailing List <wix-devs at lists.wixtoolset.org>
Subject: RE: WixComPlusExtension Status Update 4

Looks like it's public now.

-----Original Message-----
From: Allen, Eric M. (Tax&Accounting Prof)
Sent: Friday, September 06, 2019 11:08 AM
To: Hoover, Jacob <Jacob.Hoover at greenheck.com>; WiX Toolset Developer Mailing List <wix-devs at lists.wixtoolset.org>
Subject: RE: WixComPlusExtension Status Update 4

Sorry. Missed that it was internal. I've sent a request to the admin.

-----Original Message-----
From: Hoover, Jacob <Jacob.Hoover at greenheck.com>
Sent: Friday, September 06, 2019 10:35 AM
To: WiX Toolset Developer Mailing List <wix-devs at lists.wixtoolset.org>
Cc: Allen, Eric M. (Tax&Accounting Prof) <eric.allen at thomsonreuters.com>
Subject: RE: WixComPlusExtension Status Update 4

Eric,
  Can you make your demo public?

-----Original Message-----
From: wix-devs [mailto:wix-devs-bounces at lists.wixtoolset.org] On Behalf Of Allen, Eric M. (Tax&Accounting Prof) via wix-devs
Sent: Friday, September 6, 2019 9:23 AM
To: Wix Devs Mailing List (wix-devs at lists.wixtoolset.org) <wix-devs at lists.wixtoolset.org>
Cc: Allen, Eric M. (Tax&Accounting Prof) <eric.allen at thomsonreuters.com>
Subject: [wix-devs] WixComPlusExtension Status Update 4

I've managed to get a repo for my timing issue demo case:
https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_thomsonreuters_wix3-5Fissue-5F6061&d=DwIFAg&c=4ZIZThykDLcoWk-GVjSLmy8-1Cr1I4FWIvbLFebwKgY&r=JdUi5kYgt_GN1Ohq3oEyMHgCmK_1J8HGeub4gkGmoCg&m=6LtVv2mOSsqGU6kGwscpc5oFvSu01xgEbwjG3TpiNZk&s=8D5swV5CMcJB_IFpl0aaJKNPl0ORTQf2kyOlRqZ1uKE&e=

My fork with modifications is at:
https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_thomsonreuters_wix3_tree_imported-5Fcomponent&d=DwIFAg&c=4ZIZThykDLcoWk-GVjSLmy8-1Cr1I4FWIvbLFebwKgY&r=JdUi5kYgt_GN1Ohq3oEyMHgCmK_1J8HGeub4gkGmoCg&m=6LtVv2mOSsqGU6kGwscpc5oFvSu01xgEbwjG3TpiNZk&s=0WUjarIh7F-PkCHoDY9MhcstscKNbFc65_U6MjDjNxI&e=

I put the repo steps into the comments inside:
https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_thomsonreuters_wix3-5Fissue-5F6061_blob_master_SimpleComPlus_Imported.wxs&d=DwIFAg&c=4ZIZThykDLcoWk-GVjSLmy8-1Cr1I4FWIvbLFebwKgY&r=JdUi5kYgt_GN1Ohq3oEyMHgCmK_1J8HGeub4gkGmoCg&m=6LtVv2mOSsqGU6kGwscpc5oFvSu01xgEbwjG3TpiNZk&s=yuexa9kDOdZYvXbfknzaAfb7dE2tK7Jfr4q0dz85bWo&e=

To actually debug it, as per the Microsoft documentation, set a system level environment variable MsiBreak=ConfigureComPlusInstall (if you want to see the reading of the table) Or MsiBreak=ComPlusInstallExecuteCommit
(if you only care about the actual failure)

The line that will fail will be in:
https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_thomsonreuters_wix3_blob_imported-5Fcomponent_src_ext_ComPlusExtension_ca_cpexec_cpimpcompexec.cpp&d=DwIFAg&c=4ZIZThykDLcoWk-GVjSLmy8-1Cr1I4FWIvbLFebwKgY&r=JdUi5kYgt_GN1Ohq3oEyMHgCmK_1J8HGeub4gkGmoCg&m=6LtVv2mOSsqGU6kGwscpc5oFvSu01xgEbwjG3TpiNZk&s=J0AY4MRkfoclXH79mh3dLHeZLi_bn2OjMLRbGhZWE90&e=
line 237.

As near as I can tell, I need to find some way of guaranteeing that the registry writes are visible *to all processes* by the time that line executes. I don't know whether transactions might be a factor.

I'm testing this on Windows 10, in case it matters.

Thank you for your recommendations.

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Eric M. Allen Lead Software Developer

Thomson Reuters
the answer company

Phone: +1(734) 388-3878

eric.allen at tr.com

thomsonreuters.com

____________________________________________________________________
WiX Toolset Developer Mailing List provided by FireGiant https://urldefense.proofpoint.com/v2/url?u=http-3A__www.firegiant.com_&d=DwIFAg&c=4ZIZThykDLcoWk-GVjSLmy8-1Cr1I4FWIvbLFebwKgY&r=JdUi5kYgt_GN1Ohq3oEyMHgCmK_1J8HGeub4gkGmoCg&m=6LtVv2mOSsqGU6kGwscpc5oFvSu01xgEbwjG3TpiNZk&s=zktlGNkRe5gbmv7KGxSaWNz_C614WJu0pUqO747wDMs&e=
NOTE: This email was received from an external source. Please use caution when opening links or attachments in the message.
NOTE: This email was received from an external source. Please use caution when opening links or attachments in the message.
NOTE: This email was received from an external source. Please use caution when opening links or attachments in the message.
NOTE: This email was received from an external source. Please use caution when opening links or attachments in the message.
NOTE: This email was received from an external source. Please use caution when opening links or attachments in the message.



More information about the wix-devs mailing list