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>
source to share
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.
source to share