2012-11-17 31 views
0

我喜歡BuildProcessTemplates和Custom Assemblies文件夾如何自動將構建腳本同步到構建控制器/代理上。我用C#編寫了自定義活動,並瞭解如何添加一個導入,以便我可以在這些程序集中使用這些類型。TFS Workflow MSBuild活動項目位置

我也看到如何通過MSBuild活動使用MSBuild文件。我還注意到,如果我將msbuild文件(比如foo.proj)檢入源代碼管理中的CustomAssemblies文件夾中,msbuild將顯示在服務器上的臨時目錄結構中沿着我的自定義程序集顯示。

所以這是我的問題?如何在MSBuild活動的Project屬性中引用foo.proj的位置?我一直在尋找變量等,但似乎無法把它放在一起。

回答

0

我發現了一種使用自定義代碼活動的方法。基本上我把它作爲變量初始化模式連接到工作流中,然後在我的其他活動中使用它。但如果可能的話,我寧願這樣做,而不需要定製組裝。

using System.IO; 
using System.Activities; 
using System.Reflection; 
using Microsoft.TeamFoundation.Build.Client; 

namespace BuildTasks.Activities 
{ 

    [BuildActivity(HostEnvironmentOption.All)] 
    public sealed class FindCustomAssembliesDirectory : CodeActivity 
    { 
     public OutArgument<string> CustomAssembliesDirectory { get; set; } 

     protected override void Execute(CodeActivityContext context) 
     { 
      context.SetValue(CustomAssembliesDirectory, new FileInfo(Assembly.GetExecutingAssembly().Location).Directory.FullName); 
     } 
    } 
}