我有我的安装程序正确注册我的COMPLus组件。 我有最后一项要求: 强制组件级别访问检查 在角色下勾选“用户”角色。WiX - 注册ComPlus应用程序并为组件分配角色
我尝试添加一个complus:ComPlusCompoent作为我的ComPlusAssembly的子项,但是当我这样做时,安装程序失败并显示错误。 (见下) 我不知道我应该把CLSID放在什么地方,也许这是什么原因造成了这个问题? 任何人都可以帮我吗?解释我应该为CLSID做些什么?
错误和维克斯片断如下 注: 如果我删除COMPLUS:然后ComPlusComponent元素安装程序工作正常: 我的用户“ComponentUser”被定义上涨。角色和用户分配在组件中,但未勾选。
MSI(s)(68:BC)[16:25:08:579]:调用远程自定义动作。 DLL:C:\ Windows \ Installer \ MSICE31.tmp,入口点:ComPlusInstallExecuteCommit 操作16:25:08:RegisterComPlusAssemblies。注册COM +组件 RegisterComPlusAssemblies:DLL:C:\ NTApps \ MyComPlusCore \ ASA.DA.Insurance.dll ComPlusInstallExecuteCommit:错误0x80070490:未能找到组件对象 ComPlusInstallExecuteCommit:错误0x80070490:无法配置部件 ComPlusInstallExecuteCommit:错误0x80070490:失败注册总成,关键:ASA.DA.Insurance ComPlusInstallExecuteCommit:错误0x80070490:无法注册组件
<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>
通常会推迟CLSID更改?当我更改我的汇编版本时,它会发生变化......所以我们每次修改版本时都必须更改我的WiX软件包。有没有办法让它保持不变? – 2014-01-14 11:38:37