2015-11-13 181 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