我们正在使用Nant 0.91所以< choose>不可用。你如何在Nant 0.91中进行IF / ELSE?我想在NAnt 0.91中做一些(使用NAnt 0.92语法)。 [我不允许修改当前安装的NAnt 0.91]:
<choose>
<when test="${deploy.env=='PROD'}">
<property name="deploy.root.dir" value="\\${deploy.server}\${deploy.mode}\${app.dest.dir}\" />
</when>
<otherwise>
<property name="deploy.root.dir" value="\\${deploy.server}\${deploy.mode}\${deploy.env}\${app.dest.dir}\" />
</otherwise>
</choose>
答案 0 :(得分:9)
我们在这里使用的最简单的解决方案是使用两个if
任务,一个对另一个执行负面测试:
<if test="${deploy.env == 'PROD'}">
<property name="deploy.root.dir" value="\\${deploy.server}\${deploy.mode}\${app.dest.dir}\" />
</if>
<if test="${deploy.env != 'PROD'}">
<property name="deploy.root.dir" value="\\${deploy.server}\${deploy.mode}\${deploy.env}\${app.dest.dir}\" />
</if>
但是,在您的情况下,您还可以利用property
task内置if
/ unless
功能的事实:
<property name="deploy.root.dir" if="${deploy.env == 'PROD'}" value="\\${deploy.server}\${deploy.mode}\${app.dest.dir}\" />
<property name="deploy.root.dir" unless="${deploy.env == 'PROD'}" value="\\${deploy.server}\${deploy.mode}\${deploy.env}\${app.dest.dir}\" />
答案 1 :(得分:0)
如果条件为真,您可以设置默认属性值,然后设置覆盖:
[Serializable]
public class Shape
{
public int X { get; set; }
public int Y { get; set; }
public int Width { get; set; }
public int Height { get; set; }
public ShapeType ShapeType { get; set; }
public Color Color { get; set; }
public bool Mirrored { get; set; }
}