0

我的构建定义配置屏幕截图的第一个:在此处输入图像描述

TemplatePath 在我的构建定义文件中被定义为字符串。

我有一个具有属性的自定义 Build Activity 类:

 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构建定义配置中的集合中收到确切的字符串。如何让 TFS Build 评估表达式以为我提供正确的路径:C:\Build[BuildAgentId][TFS_Project][Build Definition]\src\Template\Template.qvw

我一直在寻找和尝试不同的方法来传递 TFS BUILD 环境变量,但无法找出/找到这样做的解决方案。我可能一直在寻找错误的东西。

谢谢,

4

1 回答 1

0

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

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

然后通过参数传递相对路径,并在代码内部进行组合。

在您的情况下,您不能直接将环境变量作为字符串传递。如 MSDN 所述,它仅适用于 MSBuild 参数。(https://msdn.microsoft.com/en-us/library/hh850448.aspx

这是另一个有用的链接

于 2016-01-20T15:58:09.853 回答