从自定义TFS活动获取WellKnownenEnvironmentVariables.SourcesDirectory的值

从自定义TFS活动获取WellKnownenEnvironmentVariables.SourcesDirectory的值,tfs,tfsbuild,Tfs,Tfsbuild,使用以下自定义TFS活动,我试图从WellKnownenEnvironmentVariables.SourcesDirectory获取源目录。但是,它总是返回null。如何从自定义活动的C#代码中获取WellKnownenEnvironmentVariables.SourcesDirectory的值(我不想传入该值) 如果您想从代码中获取环境变量的值,只需使用如下内容: System.Environment.GetEnvironmentVariable("TF_BUILD_SOURCESDIRE

使用以下自定义TFS活动,我试图从WellKnownenEnvironmentVariables.SourcesDirectory获取源目录。但是,它总是返回null。如何从自定义活动的C#代码中获取WellKnownenEnvironmentVariables.SourcesDirectory的值(我不想传入该值)


如果您想从代码中获取环境变量的值,只需使用如下内容:

System.Environment.GetEnvironmentVariable("TF_BUILD_SOURCESDIRECTORY") 

TFS构建相关环境变量的完整列表可在此处找到:

什么是EnvironmentVariableExtension?我认为这是TFS2013的新特性。我也有同样的问题。如果我没有弄错的话,“dir env:”powershell命令应该包含所有这些由TFS2013添加的新TF_BUILD_*变量,在我的例子中,这些变量丢失了。我将尝试手动添加它们,看看会发生什么。可能这只是安装程序引起的配置问题。是否确定生成服务器正在运行TFS 2013,并且正在使用新的生成模板:TfvcTemplate.12.xaml?正确,2013,以及已修改为运行自定义TFS活动的默认生成模板。是否使用“默认模板”这是不使用环境变量的旧2012模板,或新的“TfvcTemplate.12.xaml”,这是使用环境变量而不是工作流变量的2013模板。使用文件名为TfvsTemplate.12.xaml的默认模板。
public class MyActivity : CodeActivity
{
    protected override void Execute(CodeActivityContext context)
    {
        var sourcesDirectory = System.Environment.GetEnvironmentVariable("TF_BUILD_SOURCESDIRECTORY");
    }
}
System.Environment.GetEnvironmentVariable("TF_BUILD_SOURCESDIRECTORY")