2013-05-03 55 views
1

我有我的安裝程序正確註冊我的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> 

回答

1

是的,它是CLSID。 在此compoenet的以前安裝程序中使用了vb腳本,並且項目不需要靜態CLSID,因此它已在項目中指定。

我需要添加一個Guid屬性到具體類,然後在WiX ComPlusComponent clsid中使用這個guid。

希望這可以幫助別人。

+0

通常會推遲CLSID更改?當我更改我的彙編版本時,它會發生變化......所以我們每次修改版本時都必須更改我的WiX軟件包。有沒有辦法讓它保持不變? – 2014-01-14 11:38:37

相關問題