2011-08-05 8 views
2

설치시 메시지 대기열을 설치하는 구성 요소가있는 wix 프로젝트에 있습니다. 제거하려고 할 때이 로그의 오류와 함께 실패합니다 :msmq를 제거하면 Wix를 사용하여 만든 msi가 실패합니다.

내 윅스 코드는 다음과 같습니다
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 

:

<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'/> 

내가 실행 해요 설치/제거 같은 사용자로 데 그 큐에 설정된 사용 권한

Anywone에는 내가 뭘 잘못하고 있는지 아이디어가 있습니까?

+0

오류는 "0x80070032 오류 : 도메인 SID가 지원되지 않음"입니다. 나는 도메인 계정을 사용하여 자신이하는 일을 할 수 없다고 말합니다. 로컬 계정을 사용하여 큐를 만들거나 제거 할 때 같은 오류가 발생합니까? –

+0

수동으로 msmq를 만들려고 했습니까? 그렇다면 당신은 그것을 만들 수 있었습니까? –

+0

@Sunil 수동으로 큐를 생성하고 제거 할 수 있습니다. – gouldos

답변

0

이 코드를 사용하십시오. 유일한 변경 사항은 경로명입니다. 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> 
+0

경로 이름에 설정된 속성은 사용자가 명시한 것과 비슷한 값을가집니다. 로그의 첫 번째 줄은. \ private $ \ myqueue와 같은 속성에서 경로 이름을 올바르게 읽었 음을 보여줍니다. – gouldos

관련 문제