2014-10-01 50 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