2011-09-21 70 views
1

我一直在尋找幾個小時的替代方案,而且我還有一些非常奇怪的事情發生。團隊建設工作流程無法加載我的自定義活動

所以隔離我的問題,我創建了一個非常簡單的代碼的活動,去我的XAML模板中:

using System.Activities; 
using Microsoft.TeamFoundation.Build.Client; 
using Microsoft.TeamFoundation.Build.Workflow.Activities; 

namespace Weco.TeamBuild.FirmwareActivityPack 
{ 
    [BuildActivity(HostEnvironmentOption.Controller)] 
    public sealed class TestActivity: CodeActivity<string> 
    { 
     protected override string Execute(CodeActivityContext context) 
     { 
      context.TrackBuildMessage("Inside TestActivity", BuildMessageImportance.High); 
      return "success"; 
     } 
    } 
} 

當我試圖運行「上運行代理」的序列中這個活動,我得到了傳統的錯誤:

Cannot create unknown type '{clr-namespace:Weco.TeamBuild.FirmwareActivityPack;assembly=FirmwareActivityPack}TestActivity'. 

我有在測試活動駐留在源控制檢查裝配,和我的生成控制器指向它在幾篇文章網上推薦。

有趣的因素是,當我將該活動的副本放在模板的頂部時,它運行良好(但只有第一個TestActivity)。它看起來像「自定義程序集的版本控制路徑」僅適用於構建控制器,而不適用於代理程序。我試圖避免在我的構建服務器的GAC中安裝/卸載任何東西。

FYI,TFS安裝在machine_1,和團隊生成(控制器+ 4劑)安裝在machine_2

回答

2

找到自己的答案。

問題是,構建失敗時顯示的錯誤消息太泛化。我從構建控制器屬性中清除了定製程序集路徑,並將程序集安裝在構建機器的GAC上。

構建還是失敗,但現在有了不同的信息:

「構建過程驗證失敗詳細信息:驗證錯誤:私人執行活動‘1:DynamicActivity’具有以下驗證錯誤:TF28001 :活動「測試活動」無法在AgentScope的上下文中使用「

現在搜索的答案很簡單,解決的辦法是改變類屬性爲您定製的活動如下:

[BuildActivity(HostEnvironmentOption.Agent)] 
public sealed class UpdateFirmwareVersionBeforeCompiling : CodeActivity<string> 

那就是竅門

相關問題