我有一个asp.net应用程序的WIX设置。用户可以选择应用程序池是在内置帐户还是自定义帐户下运行(类似于IIS高级应用程序池设置>身份)。
用户完成设置后,设置必须检查用户是否选择了内置帐户或自定义帐户。 用户在设置期间设置了以下属性:
USE_BUILTIN_ACCOUNT :如果用户选择了内置帐户,则为True,否则为false
BUILTIN_ACCOUNT :所选内置帐户的名称
IDENTITY_NAME :自定义用户的名称
目前,此设置仅适用于自定义名称:
<Component Id="myAppPoolCmp" Guid="" KeyPath="yes">
<util:User Id="myAppPoolUser" CreateUser="no" Name="[IDENTITY_NAME]" Password="[IDENTITY_PWD]" Domain="[IDENTITY_DOMAIN]" />
</Component>
如何更改设置,以便根据 USE_BUILTIN_ACCOUNT 的值使用内置帐户或自定义帐户的名称?
答案 0 :(得分:1)
我找到了解决问题的方法。
以下代码适用于我:
<Component Id="sMatSupervisorAppPoolCmpBuiltIn" Guid="" KeyPath="yes">
<Condition><![CDATA[WEB_APP_POOL_USE_BUILTIN_ACCOUNT = "true"]]></Condition>
<util:User Id="sMatSupervisorAppPoolUserBuiltIn" CreateUser="no" Name="[WEB_APP_POOL_BUILTIN_ACCOUNTS]" />
<iis:WebAppPool Id="x" Name="[WEB_APP_NAME]" Identity="other" User="y" />
</Component>
<Component Id="sMatSupervisorAppPoolCmp" Guid="" KeyPath="yes">
<Condition><![CDATA[WEB_APP_POOL_USE_BUILTIN_ACCOUNT <> "true"]]></Condition>
<util:User Id="sMatSupervisorAppPoolUser" CreateUser="no" Name="[WEB_APP_POOL_IDENTITY_NAME]" Password="[WEB_APP_POOL_IDENTITY_PWD]" Domain="[WEB_APP_POOL_IDENTITY_DOMAIN]" />
<iis:WebAppPool Id="x" Name="[WEB_APP_NAME]" Identity="other" User="y" />
</Component>
答案 1 :(得分:0)
您不能等到设置结束后询问用户他们想要做什么。您必须在安装事务开始之前在UI中预先执行此操作(收集所有数据,不返回点)。
为了实现,您可能会使用组件条件来创建互斥组件。