2013-12-12 35 views
0

我有一個觸發器來建立簽入項目。但是我想在某些情況下添加一些檢查和取消構建。如何取消TFSBuild.proj中的任務構建?

我創建了一個任務,條件是我想檢查。我可以運行使用TFSBuild.proj文件使用如下代碼這個任務,其中CheckIfBuildNeeded是我的任務名稱:

<Target Name="BeforeCompile"> 
    <CheckIfBuildNeeded> 
    ..... 
    </CheckIfBuildNeeded> 
</Target> 

因此,答案是,我怎麼能取消/從任務的Execute()法或其他任何停止建設地點?我怎樣才能獲得Build對象?

我知道我可以通過此代碼從TFS獲取構建版本。但是,爲了構建我自己,需要知道它是否是ID。

TeamFoundationServer tfs = TeamFoundationServerFactory.GetServer("http://foo.bar/tfs"); 
IBuildServer buildServer = (IBuildServer)tfs.GetService(typeof(IBuildServer)); 
+0

什麼版本的TFS? –

+0

@DylanSmith TFS版本是2012年,但我從2008年起使用TFSBuild.proj方案 –

回答

1

看看Error Task

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <Target Name="ValidateCommandLine"> 
     <Error 
      Text=" The 0 property must be set on the command line." 
      Condition="'$(0)' == ''" /> 
     <Error 
      Text="The FREEBUILD property must be set on the command line." 
      Condition="'$(FREEBUILD)' == ''" /> 
    </Target> 
    ... 
</Project>