0

我有一个用于 asp.net 应用程序的 WIX 设置。用户可以选择应用程序池是在内置帐户下运行还是在自定义帐户下运行(类似于 IIS 高级应用程序池设置>身份)。

用户完成设置后,设置必须检查用户是否选择了内置帐户或自定义帐户。用户在设置过程中设置了以下属性:

USE_BUILTIN_ACCOUNT:如果用户选择了内置帐户则为真,否则为假

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的值使用内置帐户或自定义帐户的名称?

4

2 回答 2

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>
于 2013-10-25T09:13:40.173 回答
0

您不能等到设置结束才询问用户他们想要做什么。您必须在安装事务开始之前在 UI 中预先完成(收集所有数据,不归路)。

要实现,您可能会使用组件条件来创建互斥组件。

于 2013-10-14T15:38:04.110 回答