2010-12-17 56 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被调用。