1

我正在学习 WIX,我想为现有安装程序创建的消息队列添加权限,以便在安装程序运行后不必手动设置它们。

我有这段代码,但我不知道为什么它会导致像 Duplicate symbol 'User:UserAnonymousLogon' found 这样的错误。

<util:User Id="UserLocalService" CreateUser="no" Name="LOCAL SERVICE"/>
<util:User Id="UserEveryone" CreateUser="no" Name="Everyone"/>
<util:User Id="UserAnonymousLogon" CreateUser="no" Name="ANONYMOUS LOGON"/>

<msmq:MessageQueue Id="AutoAssignMQ" Label="autoassignqueue" PathName=".\Private$\autoassignqueue">
<msmq:MessageQueuePermission Id="LocalServiceFull" User="UserLocalService" QueueGenericAll="yes"/>
<msmq:MessageQueuePermission Id="EveryoneLimited" User="UserEveryone" ReceiveMessage="yes" PeekMessage="yes" ReceiveJournalMessage="yes" GetQueueProperties="yes" GetQueuePermissions="yes" WriteMessage="yes"/>
<msmq:MessageQueuePermission Id="AnonymousLimited" User="UserAnonymousLogon" GetQueueProperties="yes" GetQueuePermissions="yes" WriteMessage="yes"/>
</msmq:MessageQueue>

对于项目中也具有此代码片段但具有不同 MessageQueue ID 的每个文件,此错误会出现两次。util:User Id 在许多文件中重复出现,msmq:MessageQueuePermission Id 和 User 也是如此 - 每个文件是否必须是唯一的或类似的东西?

我想知道更多,但我没有找到任何我理解的内容。请告诉我如何以正确的方式做到这一点。

4

1 回答 1

1

我通过使用唯一的用户 ID 和 MessageQueue Id 避免了这些错误。它并没有让我觉得它是一个最佳解决方案,因此我仍然很好奇其他人会如何做到这一点,但它确实有效。

于 2013-09-09T15:06:38.747 回答