WiX - register ComPlus app and assign role to component

I have my installer that registers my COMPLus correctly. I have one final requirement: Ensure component level access is checked In the Roles section, the User role is checked.

I tried to add complus: ComPlusCompoent as a child of my ComPlusAssembly, but when I do that, the installer fails. (See below) I'm not sure what I should put as the CLSID, maybe this is what is causing the problem? Can anyone help me? Explain what should I put for CLSID?

WiX error and snippet below Note: If I remove complus: ComPlusComponent element then installer works fine: My User 'ComponentUser' is defined above Role and user are assigned in component but not checked.

MSI (s) (68: BC) [16: 25: 08: 579]: Invoke remote custom actions. DLL: C: \ Windows \ Installer \ MSICE31.tmp Entry Point: ComPlusInstallExecuteCommit Action 16:25:08: RegisterComPlusAssemblies. Register COM + Components RegisterComPlusAssemblies: DLL: C: \ NTApps \ MyComPlusCore \ ASA.DA.Insurance.dll ComPlusInstallExecuteCommit: Error 0x80070490: Unable to locate ComPlusInstallExecuteCommit component object: Error 0x80070490: Failed to configureExecute Components ePlusInstall70 failed: Error 0x80070490 could not be configured , key: ASA.DA.Insurance ComPlusInstallExecuteCommit: Error 0x80070490: Failed to register assemblies

<complus:ComPlusApplication Id="ASA.NETCoreData3" 
                        Name="ASA.NETCoreData3" 
                        Description="ASA .NET Core Data Components"
                        ApplicationAccessChecksEnabled="yes"
                        AccessChecksLevel="applicationComponentLevel"
                        Authentication="packet"
                        ImpersonationLevel="impersonate"
                        Activation="inproc">

    <complus:ComPlusApplicationRole Id="ASA.NETCoreData3.Role" 
                                Name ="User">
        <complus:ComPlusUserInApplicationRole Id="ASA.NETCoreData3.User" 
                                            User="ComponentUser" />
    </complus:ComPlusApplicationRole>

    <complus:ComPlusAssembly Id="ASA.DA.Insurance" 
                            DllPath="[#ASA.DA.Insurance_dll]"
                            Type="native"
                            RegisterInCommit="yes">
        <complus:ComPlusComponent Id="ASA.DA.Insurance.Com"
                                CLSID="f8a83c94-9ab1-4c4d-8ebc-901aa747ac33"
                                Description="ASA.DA.Insurance.AppInsurance" 
                                ComponentAccessChecksEnabled="yes" >
            <complus:ComPlusRoleForComponent Id="ASA.DA.Insurance.Role" 
                                            ApplicationRole="ASA.NETCoreData3.Role" />
        </complus:ComPlusComponent>
    </complus:ComPlusAssembly>
</complus:ComPlusApplication>

      

+1


source to share


1 answer


Yes, it was the CLSID. The previous installers used a vb script for this compoenet and projects don't need a static CLSID, so it was listed in projects.

I needed to add a Guid attribute for a specific class and then use this guide in the WiX ComPlusComponent clsid.



Hope this helps someone.

+1


source







All Articles