[wix-devs] WixComPlusExtension Status update 1
Edwin Castro
egcastr at gmail.com
Thu Aug 15 21:56:56 PDT 2019
That explains why it sounds weird. As an adjective, Imported should be at
the beginning: ImportedComPlusComponent
<comPlus:ImportedComPlusComponent Id="CalculatorComPlusComponent CLSID="
D0213ABD-5928-481E-AF3E-51B860AF47D2"/>
What if instead of replacing <comPlus:ComPlusAssembly/> with
<comPlus:ComPlusImportedComponent/> (or
<comPlus:ImportedComPlusComponent/>) perhaps you add an Import="yes|no"
attribute (defaulted to "no") to <comPlus:ComPlusAssembly/> and
conditionalize behavior based on the Import attribute?
--
Edwin G. Castro
On Thu, Aug 15, 2019 at 8:02 AM Allen, Eric M. (Tax&Accounting Prof) via
wix-devs <wix-devs at lists.wixtoolset.org> wrote:
> I'm 99% sure I only received this because I'm on the cc line, given I got
> this but not the announcement of the meeting cancellation, which the
> archive indicates was sent out earlier. I'll continue to pursue issues with
> my IT department about the mail list blockage.
>
> The use of "Imported" is meant more as an adjective, not a verb. (Think
> "Imported cheese" vs "Domestic cheese".)
>
> -----Original Message-----
> From: Rob Mensching <rob at firegiant.com>
> Sent: Thursday, August 15, 2019 10:27 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 1
>
> Thank you for sending along this information. I understand better what is
> going on here and it makes sense. The new element name is:
>
> ComPlusImportedComponent
>
> It sounds a little funny (I think it is the past test "Imported") but I
> don't have a better name. I wanted to highlight it here in case anyone
> (<cough>Bob</cough>) had a better name.
>
> However, don't let the name hold you back. That should be a (relatively)
> simple thing to change compared to the install, repair, uninstall, and
> rollback for all logic for the import.
>
>
> Regards,
>
> Rob Mensching
> CEO
> FireGiant
> _______________________________________________________________
> FireGiant | Dedicated support for the WiX toolset |
> https://urldefense.proofpoint.com/v2/url?u=http-3A__www.firegiant.com_&d=DwIFAg&c=4ZIZThykDLcoWk-GVjSLmy8-1Cr1I4FWIvbLFebwKgY&r=JdUi5kYgt_GN1Ohq3oEyMHgCmK_1J8HGeub4gkGmoCg&m=YYeF2n3FAv8SJZqJqy2j0LidlzO7KE-L_8LZuaMQsDI&s=ETXAS_8z7ZwF2TlJp5L2Pbs9k9vZUWEKkC4nev4IRr4&e=
>
> -----Original Message-----
> From: Allen, Eric M. (Tax&Accounting Prof) <eric.allen at thomsonreuters.com>
>
> Sent: Wednesday, August 7, 2019 3:01 PM
> To: Rob Mensching <rob at firegiant.com>; WiX Toolset Developer Mailing List
> <wix-devs at lists.wixtoolset.org>
> Subject: RE: WixComPlusExtension Status update 1
>
> That's an excellent question. Here's the wxs file from the reduced test
> case I was using for debugging purposes.
>
> <?xml version="1.0" encoding="utf-8"?>
> <Wix
> xmlns="
> https://urldefense.proofpoint.com/v2/url?u=http-3A__schemas.microsoft.com_wix_2006_wi&d=DwIFAg&c=4ZIZThykDLcoWk-GVjSLmy8-1Cr1I4FWIvbLFebwKgY&r=JdUi5kYgt_GN1Ohq3oEyMHgCmK_1J8HGeub4gkGmoCg&m=YYeF2n3FAv8SJZqJqy2j0LidlzO7KE-L_8LZuaMQsDI&s=pevhlCJrLytsGdUcc7w3xaQNwPDpIYB96KGE6xzJCN0&e=
> "
> xmlns:comPlus="
> https://urldefense.proofpoint.com/v2/url?u=http-3A__schemas.microsoft.com_wix_ComPlusExtension&d=DwIFAg&c=4ZIZThykDLcoWk-GVjSLmy8-1Cr1I4FWIvbLFebwKgY&r=JdUi5kYgt_GN1Ohq3oEyMHgCmK_1J8HGeub4gkGmoCg&m=YYeF2n3FAv8SJZqJqy2j0LidlzO7KE-L_8LZuaMQsDI&s=H7roe0fJ1Gp5o5Ezd7LLHMqLmOh2kiAtkfhFxayp6Eg&e=
> "
> xmlns:util="
> https://urldefense.proofpoint.com/v2/url?u=http-3A__schemas.microsoft.com_wix_UtilExtension&d=DwIFAg&c=4ZIZThykDLcoWk-GVjSLmy8-1Cr1I4FWIvbLFebwKgY&r=JdUi5kYgt_GN1Ohq3oEyMHgCmK_1J8HGeub4gkGmoCg&m=YYeF2n3FAv8SJZqJqy2j0LidlzO7KE-L_8LZuaMQsDI&s=pkYCQQyLgnWp6g2l57zgOqtCr_QbSHQ1KvDJnam5Xn0&e=
> "
> >
> <!--
> Usage:
> (0) Set path to resolve candle.exe and light.exe
> (1) Change to the folder containing this file
> (2) invoke:
> candle -ext WixComPlusExtension -ext WixUtilExtension
> .\SimpleComCalculator.wxs
> (3) invoke:
> light -ext WixComPlusExtension -ext WixUtilExtension
> .\SimpleComCalculator.wixobj
> -->
> <Product
> Name="SimpleComPlusCalculator"
> Manufacturer="Acme"
> Id="C23E8496-B9C6-4657-AA47-F24FCCB0C42D"
> UpgradeCode="3EE1846E-60DB-4399-A4A5-CD4ADABCF5B9"
> Language="1033"
> Codepage="1252"
> Version="1.0.0"
> >
>
> <Package
> Id="*"
> Keywords="Installer"
> Description="COM+ Calculator"
> Comments="Experimental"
> Manufacturer="Acme"
> InstallerVersion="500"
> Languages="1033"
> Compressed="yes"
> SummaryCodepage="1252"
> />
>
> <Media
> Id="1"
> Cabinet="SimpleComPlusCalculator.cab"
> EmbedCab="yes"
> DiskPrompt="What Disk?"
> />
> <Property
> Id="DiskPrompt"
> Value="Demo Install [1]"
> />
>
> <Directory
> Id="TARGETDIR"
> Name="SourceDir"
> >
>
> <Directory Id="ProgramFilesFolder" Name="PFiles" >
> <Directory Id="Acme" Name="Acme" >
> <Directory Id="INSTALLDIR" Name="Calculator Experiment" >
>
> <Component Guid="*" Id="ClientExecutable" >
> <File
> Id="ClientExe"
> Name="SimpleComConsumer.exe"
>
> Source="SimpleComConsumer\bin\Release\SimpleComConsumer.exe"
> KeyPath="yes"
> />
> </Component>
>
> <Component Guid="*" Id="NativeDll" >
> <File
> Id="ndf"
> Name="SimpleComServer.dll"
> Source="Release\SimpleComServer.dll"
> KeyPath="yes"
> >
> <!--
> Experimentation revealed that when using ComPlus to
> install with the TypeLib, an error:
> HRESULT COMADMIN_E_ALREADYINSTALLED
> is emitted from the call to
> ICOMAdminCatalog::InstallComponent()
> -->
> <!--
> <Class Id="D0213ABD-5928-481E-AF3E-51B860AF47D2" >
> <!-&-; No ProgId &-;->
> <Interface
> Id="4A71510A-DB14-49C1-98FF-26F5B8C26DE6"
> Name="IDispCalculatorComponent"
>
> ProxyStubClassId32="00020420-0000-0000-C000-000000000046"
> />
> </Class>
> -->
> </File>
>
>
> <comPlus:ComPlusApplicationId="CalculatorComPlus"Name="ComPlusCalculator">
>
> <comPlus:ComPlusApplicationRoleId="CreaterOwnerRole"Name="CreatorOwner">
>
> <comPlus:ComPlusGroupInApplicationRoleId="AuthUsersValid"Group="AuthUsersGroup"/>
> </comPlus:ComPlusApplicationRole>
>
> <comPlus:ComPlusAssemblyId="CalculatorAssembly"DllPath="[#ndf]"TlbPath="[#tlb]"Type="native">
>
> <comPlus:ComPlusComponentId="CalculatorComPlusComponent"CLSID="D0213ABD-5928-481E-AF3E-51B860AF47D2"/>
> </comPlus:ComPlusAssembly>
> </comPlus:ComPlusApplication>
> </Component>
>
> <Component Guid="*" Id="NativeTypeLib">
> <File
> Id="tlb"
> Name="SimpleComServer.tlb"
> Source="Release\SimpleComServer.tlb"
> KeyPath="yes"
> />
> </Component>
> </Directory>
> </Directory>
> </Directory>
> </Directory>
>
> <Feature Id="Complete" Level="1" >
> <ComponentRef Id="ClientExecutable" />
> <ComponentRef Id="NativeDll" />
> <ComponentRef Id="NativeTypeLib" />
> </Feature>
>
> <!--
> Using the domain per the 2009-02-11 answer to
>
> https://urldefense.proofpoint.com/v2/url?u=https-3A__www.trycatchfail.com_2008_07_28_wix-2Dpermissionex-2Dproblem-2Dsolved_&d=DwIFAg&c=4ZIZThykDLcoWk-GVjSLmy8-1Cr1I4FWIvbLFebwKgY&r=JdUi5kYgt_GN1Ohq3oEyMHgCmK_1J8HGeub4gkGmoCg&m=YYeF2n3FAv8SJZqJqy2j0LidlzO7KE-L_8LZuaMQsDI&s=HKSt5mPOuR0BYfqKT_-P1C9QkwyJDal8O1LReitJILo&e=
> -->
>
> <util:GroupId="AuthUsersGroup"Name="AuthenticatedUsers"Domain="NTAUTHORITY"/>
> </Product>
> </Wix>
>
> Under my proposed changes, one would basically uncomment the registration
> children of the <File> element with Id="ndf", remove the Component with
> Id="NativeTypeLib" [recall my actual component of concern doesn't have a
> valid typelib] and replace <comPlus:ComPlusAssembly> with something similar
> to the
> following:
>
>
> <comPlus:ComPlusImportedComponentId="CalculatorComPlusComponent"CLSID="D0213ABD-5928-481E-AF3E-51B860AF47D2"/>
>
> Then, at runtime, instead of calling InstallComponent(path_to_dll,
> path_to_typelib), the extension will call
> ImportComponent("D0213ABD-5928-481E-AF3E-51B860AF47D2") [but with a GUID
> instead of a string].
>
> -----Original Message-----
> From: Rob Mensching <rob at firegiant.com>
> Sent: Tuesday, August 06, 2019 3:58 PM
> 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 1
>
> Eric,
>
> Thanks for the detail. It would help me a lot if you could use concrete
> examples. For example, first provide an example of .wxs code for that would
> "normally" be used to install a COM+ today. Then show a second example of
> the new .wxs code, and to concretely show what must be added/changed to
> support the scenario.
>
> Examples help me visualize what is going on. It will be especially helpful
> here since I've never worked with COM+ and your real world examples should
> help ground the conversation.
>
> Thanks,
>
> Rob Mensching
> CEO
> FireGiant
> _______________________________________________________________
> FireGiant | Dedicated support for the WiX toolset |
> https://urldefense.proofpoint.com/v2/url?u=http-3A__www.firegiant.com_&d=DwIFAg&c=4ZIZThykDLcoWk-GVjSLmy8-1Cr1I4FWIvbLFebwKgY&r=JdUi5kYgt_GN1Ohq3oEyMHgCmK_1J8HGeub4gkGmoCg&m=7Xr7s7nnDHQutBpXjR7MPqyr5zrJ__L8Tua4Ky4XiY0&s=5_-49RplC0qfyhdn_Nd9xhdOiec_O8wjOwq4togHqH8&e=
>
> -----Original Message-----
> From: wix-devs <wix-devs-bounces at lists.wixtoolset.org> On Behalf Of
> Allen, Eric M. (Tax&Accounting Prof) via wix-devs
> Sent: Friday, August 2, 2019 3:01 PM
> 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 1
>
> Hello Wix-Devs.
>
> This message serves the dual purpose of ensuring I can successfully mail
> the mailing list. This is with regard to
> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_wixtoolset_issues_issues_6061&d=DwIFAg&c=4ZIZThykDLcoWk-GVjSLmy8-1Cr1I4FWIvbLFebwKgY&r=JdUi5kYgt_GN1Ohq3oEyMHgCmK_1J8HGeub4gkGmoCg&m=7Xr7s7nnDHQutBpXjR7MPqyr5zrJ__L8Tua4Ky4XiY0&s=mpNQFScnSk_ibThKm2Lgma925tHBwd85vSlVC3P6GWM&e=
>
> Now that I'm refamiliarizing myself with the issues, and closer to where I
> have my notes, I can recall that my basic plan was to allow a new child of
> ComPlusApplication in the wxs. As an alternate to ComPlusAssembly, we would
> have new element, strawman name ComPlusImportedComponent. Looking
> carefully, it *might* be possible to allow ComPlusComponent at this level
> instead of only as a child of Assembly, and based on the parent, determine
> whether we're imported or installed. That's probably something to look into
> after getting something working.
>
> Regardless, the goal is to change the runtime behavior to call
> ImportComponent instead of InstallComponent.
>
> https://urldefense.proofpoint.com/v2/url?u=https-3A__docs.microsoft.com_en-2Dus_windows_win32_api_comadmin_nf-2Dcomadmin-2Dicomadmincatalog-2Dimportcomponent&d=DwIFAg&c=4ZIZThykDLcoWk-GVjSLmy8-1Cr1I4FWIvbLFebwKgY&r=JdUi5kYgt_GN1Ohq3oEyMHgCmK_1J8HGeub4gkGmoCg&m=7Xr7s7nnDHQutBpXjR7MPqyr5zrJ__L8Tua4Ky4XiY0&s=iUdL9n9gL97nYFKC_mYS6lGalbPEo0MUOBdFpR4Ho58&e=
>
> https://urldefense.proofpoint.com/v2/url?u=https-3A__docs.microsoft.com_en-2Dus_windows_win32_api_comadmin_nf-2Dcomadmin-2Dicomadmincatalog-2Dinstallcomponent&d=DwIFAg&c=4ZIZThykDLcoWk-GVjSLmy8-1Cr1I4FWIvbLFebwKgY&r=JdUi5kYgt_GN1Ohq3oEyMHgCmK_1J8HGeub4gkGmoCg&m=7Xr7s7nnDHQutBpXjR7MPqyr5zrJ__L8Tua4Ky4XiY0&s=jPLsJDfJlMw_ClfIAqHvuLox6H8p6KCbDqtmomKQo18&e=
>
> I think I need to engineer a three-part plan.
> 1) The compiler needs to know to take the new element and put it in a
> table.
> 2) cpsched needs to query the table and emit data into the property used to
> communicate to cpexec.
> 3) cpexec needs to parse the property and send it down into an alternative
> for
> CpiConfigureAssemblies() in each of ComPlusInstallExecute(),
> ComPlusInstallExecuteCommit(), and ComPlusUninstallExecute().
>
> There may need to be some additional supporting work to achieve those and
> keep rollback where we want it.
>
> One unrelated improvement I want to make is to the Documentation to
> indicate that the ComPlusGroupInApplicationRole is expecting to cooperate
> with UtilExtension's Group (likely similar for User). I'm not quite sure
> where to go in order to make documentation edits.
>
> Thank you for your time and feedback.
>
> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
> * * 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=7Xr7s7nnDHQutBpXjR7MPqyr5zrJ__L8Tua4Ky4XiY0&s=5_-49RplC0qfyhdn_Nd9xhdOiec_O8wjOwq4togHqH8&e=
> ____________________________________________________________________
> WiX Toolset Developer Mailing List provided by FireGiant
> http://www.firegiant.com/
>
More information about the wix-devs
mailing list