如果您将配置文件保存在单独的组件中,则可以向组件添加条件元素。
CostFinalize
在标准操作 ( source )期间评估组件条件,因此您必须使用在文件成本计算之前运行的自定义操作来收集有关环境的信息。您可以使用内置的OSInfo 自定义操作或预定义属性来执行此操作。
如果构建服务器上的名称不同,只需将File/@Name
所有配置文件的属性设置为相同即可。不幸的是,这会引发 ICE30,但如果条件互斥,您可以放心地忽略它。
您的 xml 看起来像:
<Component Guid="PUT-GUID-HERE">
<Condition>VersionNT = 602</Condition>
<File Name="app.config" Source="config1.config" />
</Component>
<Component Guid="PUT-GUID-HERE">
<Condition>NOT VersionNT = 602</Condition>
<File Name="app.config" Source="config2.config" />
</Component>
请注意,您必须指定组件 guid,因为它们具有相同的目标路径。两者的自动生成的 guid 是相同的。