2015-11-13 121 views
0

首先我生成定义配置屏幕截图:enter image description hereTFS生成定义配置

TEMPLATEPATH被定义为我的生成定义文件的字符串。

我有了一个属性自定义生成活动类:

public class MyActivity: NativeActivity { 
     public InArgurment<string> TemplatePath{ get; set;} 
     public void Execute(NativeActivityContext context){ 
      //My Code goes here 
     } 
} 

我想要做的是能在TF_BUILD_SOURCESDIRECTORY环境变量的值传递到TemplatePath。假设源目录可能是C:\ Build [BuildAgentId] [TFS_Project] [Build Definition] \ src,我希望能够在我的Execute方法中使用以下代码时能够收到此信息。

string templateLoc = TemplatePath.Get(context); 

的截图有我在一直试图传球值之一。无论我试图通过其中的价值,我仍然收到从构建定义配置TemplatePath集完全匹配的字符串。 C:\ Build [BuildAgentId] [TFS_Project] [Build Definition] \ src \ Template \ Template.qvw

我一直在寻找和玩游戏以不同的方式传递TFS BUILD环境变量,但无法找出/找到解决方案。我可能一直在寻找错误的东西。

谢谢

回答

0

首先,您可以直接检索您的自定义活动代码中的环境变量,如下所示。

var sourceDirectory = System.Environment.GetEnvironmentVariable("TF_BUILD_SOURCESDIRECTORY"); 

然后通过参数传递相对路径并将其合并到代码中。

就你而言,你不能直接将环境变量作为字符串传递。它只适用于MSDN提到的MSBuild参数。 (https://msdn.microsoft.com/en-us/library/hh850448.aspx

这里是另一个有用的链接here