При удалении msmq происходит сбой msi, созданного с помощью Wix - PullRequest
2 голосов
/ 05 августа 2011

В моем проекте wix есть компонент, который устанавливает очередь сообщений при установке.При попытке удаления происходит сбой с ошибкой в ​​журнале:

MSI (s) (D8!C8) [15:55:10:618]: Creating MSIHANDLE (1062) of type 790531 for thread 4552
MessageQueuingExecuteUninstall: Queue: .\private$\myqueue
MSI (s) (D8!C8) [15:55:10:666]: Closing MSIHANDLE (1062) of type 790531 for thread 4552
MSI (s) (D8!C8) [15:55:10:688]: Creating MSIHANDLE (1063) of type 790531 for thread 4552
MessageQueuingExecuteUninstall:  Error 0x80070032: Domain SIDs not supported
MSI (s) (D8!C8) [15:55:10:717]: Closing MSIHANDLE (1063) of type 790531 for thread 4552
MSI (s) (D8!C8) [15:55:10:734]: Creating MSIHANDLE (1064) of type 790531 for thread 4552
MessageQueuingExecuteUninstall:  Error 0x80070032: Failed to get SID for account name
MSI (s) (D8!C8) [15:55:10:766]: Closing MSIHANDLE (1064) of type 790531 for thread 4552
MSI (s) (D8!C8) [15:55:10:784]: Creating MSIHANDLE (1065) of type 790531 for thread 4552
MessageQueuingExecuteUninstall:  Error 0x80070032: Failed to remove message queue permission
MSI (s) (D8!C8) [15:55:10:816]: Closing MSIHANDLE (1065) of type 790531 for thread 4552
MSI (s) (D8!C8) [15:55:10:833]: Creating MSIHANDLE (1066) of type 790531 for thread 4552
MessageQueuingExecuteUninstall:  Error 0x80070032: Failed to remove message queue permissions
MSI (s) (D8!C8) [15:55:10:867]: Closing MSIHANDLE (1066) of type 790531 for thread 4552
CustomAction MessageQueuingExecuteUninstall returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)
MSI (s) (D8:3C) [15:55:10:901]: Closing MSIHANDLE (1061) of type 790536 for thread 4964

Мой код Wix выглядит следующим образом:

<util:User Id="myUser" Domain="[DOMAIN]" Name="[USERNAME]" CreateUser="no" RemoveOnUninstall="no" FailIfExists="no"/>
<msmq:MessageQueue Id='myQueue' Label='My Queue' Transactional='yes' PathName='[QUEUE_NAME]'>
<msmq:MessageQueuePermission Id='myQueuePermission' User='myUser' QueueGenericAll='yes' QueueGenericRead='yes' QueueGenericWrite='yes' QueueGenericExecute='yes'/>

Я запускаю установку / удаление под тем жепользователь, которому в очереди установлены разрешения.

Кто-нибудь есть идеи, что я делаю не так?

1 Ответ

0 голосов
/ 09 августа 2011

Попробуйте этот код .. Единственное изменение - путь. Я думаю, что вам нужно использовать имя переменной вместо wixtest.

<Component ... >
    <util:User Id="GroupUsers" Domain="[LOGONDOMAIN]" Name="Users" CreateUser="no" FailIfExists="no" RemoveOnUninstall="no" />
    <msmq:MessageQueue PathName=".\Private$\wixtest" Label="My Test Queue" Id="MyTestQueue" >
        <msmq:MessageQueuePermission User="GroupUsers" Id="MyTestQueuePerm" PeekMessage="yes" ReceiveMessage="yes" WriteMessage="yes" />
    </msmq:MessageQueue > 
</Component>
...