2014-09-12 122 views
0

在自定义MSBuild任务中,如果构建发生为TFS构建服务器上的CI构建的一部分,我想执行其他验证步骤。发现构建发生的环境的最健壮和便携的方法是什么?我不想在构建服务器更改或升级TFS时重新访问代码。构建服务器或本地构建自定义构建任务

谢谢, 詹姆斯

回答

2

将要执行的任务的条件。设置condition = true作为TFS构建的一部分构建,但默认为未设置,否则设置为false。

例如,在执行你的任务项目文件:

<PropertyGroup> 
    <DoMyTask Condition="'$(DoMyTask)'==''">false</DoMyTask> 
</PropertyGroup> 

的条件,那么添加到您的任务:

<TaskName 
    TaskParam="Value" 
    ... 
    Condition="'$(DoTaskName)'=='true'" /> 

然后打开你的生成定义并导航到进程选项卡。在高级下,您可以添加额外的MSBuild参数。添加以下内容(使用上面的示例属性):/ p:DoMyTask = true

如果您要使用此功能,您还可以在构建过程模板中追加'/ p:DoMyTask = true'一直在许多建筑物中。

顺便说一句:我确定有很多不同的方法来确定您的构建是否在构建机器上发生或没有。我强烈建议你不要使用'猜测'来确定构建环境,因为它会在以后进行困难的诊断。

0

在构建过程模板创建一个变量,并将其设置为在建立中央服务器。这样你可以将变量传递给你的任务。如果变量设置为特定值,则它是中央服务器中的内部版本。

有关如何修改生成过程模板,请点击此链接了解更多信息: http://msdn.microsoft.com/en-us/library/dd647551.aspx