在自定义MSBuild任务中,如果构建是作为TFS构建服务器上的CI构建的一部分进行的,我想执行其他验证步骤。什么是发现构建环境的最强大,最便携的方法?我不想在构建服务器更改或升级TFS时重新访问代码。
谢谢, 詹姆斯
答案 0 :(得分:2)
在您要执行的任务上添加条件。当您作为TFS构建的一部分构建时设置condition = true,但默认为未设置或否则为false。
例如,在执行任务的项目文件中:
<PropertyGroup>
<DoMyTask Condition="'$(DoMyTask)'==''">false</DoMyTask>
</PropertyGroup>
然后将条件添加到您的任务中:
<TaskName
TaskParam="Value"
...
Condition="'$(DoTaskName)'=='true'" />
然后打开构建定义并导航到Process选项卡。在“高级”下,您可以添加额外的MSBuild参数。附加以下内容(使用上面的示例属性):/ p:DoMyTask = true
如果您将在多个构建中一直使用它,那么您还可以通过在构建过程模板中附加'/ p:DoMyTask = true'来实现相同的结果。
顺便说一句:我确信有很多不同的方法可以确定您的构建是否在构建计算机上发生。我强烈建议您不要使用'猜测'来确定构建环境,因为它会导致以后难以诊断。
答案 1 :(得分:0)
在构建过程模板中创建一个变量,并将其设置为中央服务器中的构建。这样您就可以将变量传递给您的任务。如果变量设置为特定值,则它是中央服务器中的构建。
有关如何修改构建过程模板的详细信息,请访问以下链接: http://msdn.microsoft.com/en-us/library/dd647551.aspx