您好基于环境(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>

上述组件工作正常; 通过MSIEXEC安装时,可以通过命令行设置ENVPROPERTY属性值。

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

<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软件包的服务器名(计算机)。 这样就可以部署以上组件,而在部署程序包时不会跳过这些组件。

提前致谢

===============>>#1 票数:0

公共属性只能在命令行中使用。 对于公共财产,所有字母均应为大写。 像其他计算机名称一样,将ComputerName属性用作COMPUTERNAME

  ask by Chat translate from so

未解决问题?本站智能推荐: