我想更改属性的值,如果它是某个值。在C#中我会写:
if(x=="NotAllowed")
x="CorrectedValue;
这是我到目前为止,请不要笑:
<PropertyGroup>
<BranchName>BranchNameNotSet</BranchName>
</PropertyGroup>
///Other targets set BranchName
<Target Name="CheckPropertiesHaveBeenSet">
<Error Condition="$(BranchName)==BranchNameNotSet" Text="Something has gone wrong.. branch name not entered"/>
<When Condition="$(BranchName)==master">
<PropertyGroup>
<BranchName>MasterBranch</BranchName>
</PropertyGroup>
</When>
</Target>
答案 0 :(得分:20)
您可以使用Condition
上的Property
执行此操作:
<PropertyGroup>
<BranchName>BranchNameNotSet</BranchName>
</PropertyGroup>
<Target Name="CheckPropertiesHaveBeenSet">
<!-- If BranchName equals 'BranchNameNotSet' stop the build with error-->
<Error Condition="'$(BranchName)'=='BranchNameNotSet'" Text="Something has gone wrong.. branch name not entered"/>
<PropertyGroup>
<!-- Change BranchName value if BranchName equals 'master' -->
<BranchName Condition="'$(BranchName)'=='master'">MasterBranch</BranchName>
</PropertyGroup>
</Target>
When
和Choose
的信息:“选择”,“时间”和“其他”元素一起使用,以提供一种方法来选择一段代码,以执行多种可能的替代方案。
选择元素可以用作Project的子元素,When和else元素。
在您的代码示例中,您使用When
而不是Choose
且在目标范围内,这是不可能的。
答案 1 :(得分:3)
如果它的值等于'NotAllowed',则将BranchName设置为字符串'CorrectedValue':
<PropertyGroup>
<BranchName Condition="'$(BranchName)'=='NotAllowed'">CorrectedValue</BranchName>
</PropertyGroup>