嗨基于环境(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 包的服务器名称(机器)。这样在部署包时,上述组件就会被部署并且不会被跳过。
提前致谢