2014-10-01 70 views
4

我正在使用CodeActivity基類創建TFS2013自定義活動。TFS獲取CodeActivity內部構建目錄的名稱

這裏是我一起工作的過載能力...

protected override void Execute(CodeActivityContext context) 

隨着CodeActivityContext,怎麼開始build目錄(其中的文件被由MSBuild的在建之前下降了)?我需要在MSBuild接管之前修改構建目錄路徑中的文件。

回答

7

你可以在一個字符串傳遞給你的活動

[RequiredArgument] 
     public InArgument<string> DirectoryToSearch { get; set; } 

在TFS你可以的早期版本只需通過SourcesDirectoryBinariesDirectory

2013年,SourcesDirectory和BinariesDirectory的默認對象已被撤銷。

你現在可以從

Microsoft.TeamFoundation.Build.Activities.Extensions.WellKnownEnvironmentVariables得到這些對象。

WellKnownEnvironmentVariables

+0

今天DotNetCurry只是發表了一篇關於這項技術的文章。 http://www.dotnetcurry.com/showarticle.aspx?ID=1035 – 2014-10-01 16:01:28

1

這些路徑現在存儲在環境變量(從TFS 2013我相信)。

瞭解更多關於環境變量這裏:http://msdn.microsoft.com/en-ca/library/hh850448.aspx

你想要的是TF_BUILD_SOURCESDIRECTORY

+0

我看到那些,但我不是如何讓那些從CodeActivity接入清楚。你能舉一個快速的代碼示例嗎? – 2014-10-01 04:46:52

+0

就像你在任何C#代碼中一樣,System.Environment.GetEnvironmentVariable(「TF_BUILD_SOURCESDIRECTORY」)http://msdn.microsoft.com/en-us/library/77zkk0b6(v=vs.110).aspx – 2014-10-01 18:42:09