0

嗨基于环境(UAT,TEST,DEV,PROD)和服务器特定(Server1,Server2 ..)我正在过滤配置文件。

<Component Id="cmp39F4D3AA1248B5FE5EB2F92D189B27E1" Directory="dirCFCE6D07D3330FE628276777F0488B18" Guid="{56788F77-A729-47CE-BBA4-9D7D7F175536}">
<File Id="fil10B3B7732D0DDBD4AA773E0B7F34D092" KeyPath="yes" Source="$(var.SDirect.B2CWeb.ProjectDir)Web.ProdBuild.Web1.config.xml" >
<CopyFile Id="SCopy_ConfigPROD1" DestinationProperty="DestFilesWebsiteFolder" DestinationName="Web.config" />
</File>
              <Condition> <![CDATA[ENVPROPERTY~="PROD"]]></Condition>
</Component>

上面的组件工作正常;ENVPROPERTY 属性值是在由 MSIEXEC 安装时通过命令行设置的。

但是,当我将上述语句更改如下时不起作用,安装程序需要检测安装它的计算机名或服务器名,并且基于此,安装程序必须确保部署上述组件。

<Component Id="cmp39F4D3AA1248B5FE5EB2F92D189B27E1" Directory="dirCFCE6D07D3330FE628276777F0488B18" Guid="{56788F77-A729-47CE-BBA4-9D7D7F175536}">
<File Id="fil10B3B7732D0DDBD4AA773E0B7F34D092" KeyPath="yes" Source="$(var.SDirect.B2CWeb.ProjectDir)Web.ProdBuild.Web1.config.xml" >
<CopyFile Id="SCopy_ConfigPROD1" DestinationProperty="DestFilesWebsiteFolder" DestinationName="Web.config" />
</File>
    <Condition> <![CDATA[ENVPROPERTY~="PROD" AND ComputerName~="Server1"]]></Condition>
</Component>

任何人都可以帮助设置满足 ENVPROPERTY="PROD" 和 ComputerName="Server1" 的条件语句,即安装 MSI 包的服务器名称(机器)。这样在部署包时,上述组件就会被部署并且不会被跳过。

提前致谢

4

1 回答 1

0

公共属性只能在命令行中使用。公共属性的所有字母都应为大写。使用ComputerName属性作为COMPUTERNAME像另一个一样。

于 2013-04-16T05:45:41.653 回答