2010-12-17 51 views
0

我使用MsmqExtension創建私人消息隊列。但是在卸載期間,隊列留下沒有任何權限,不能手動刪除。卸載後留下的Messagequeue

我錯過了什麼?

這是一個小的測試設置我寫道:

<util:Group Id="Admins" Name="Administrators"/> 
<util:Group Id="Everyone" Name="Everyone"/> 

<Directory Id="TARGETDIR" Name="SourceDir"> 
    <Directory Id="ProgramFilesFolder"> 
    <Directory Id="INSTALLLOCATION" Name="WixProject1"> 
     <Component Id="cmpCCFCC98FF29F9839A11C5E93C1B73C3E" Guid="510DB8D1-A435-42A8-A8E8-5A4695CFBD7C" KeyPath="yes"> 
     <msmq:MessageQueue Id='CreateTQ' 
       Label ='Test Queue' 
       PathName='.\Private$\Test_Queue' 
       Transactional='yes'> 

      <msmq:MessageQueuePermission Id='CreateTQPermissions_Admins' 
             QueueGenericAll='yes' 
             Group='Admins' /> 

      <msmq:MessageQueuePermission Id='CreateTQPermissions_Everyone' 
             GetQueueProperties='yes' 
             GetQueuePermissions='yes' 
             WriteMessage='yes' 
             Group='Everyone' /> 
     </msmq:MessageQueue> 
     </Component> 
    </Directory> 
    </Directory> 
</Directory> 

    <Feature Id="ProductFeature" Title="WixProject1" Level="1"> 
    <ComponentRef Id="cmpCCFCC98FF29F9839A11C5E93C1B73C3E"/> 
    </Feature> 

謝謝!

回答

0

您可以在卸載時調用CustomAction。而在customaction您可以編寫自己的代碼刪除消息隊列

<Custom Action="DeleteMSMQ" After="InstallFinalize">REMOVE</Custom> 

這個動作只能在REMOVE被調用。