2013-03-07 57 views
3

我正在創建一個自定義生成定義,我想用它來在檢入時增加我的程序集編號。我遵循this blog,其中規定在更改ReadOnly文件時通過Workspace 。我有一個源控制結構是這樣的:如何獲取TFS中的生成項目定製生成activitiy

  • 團隊協作
    • 溶液A
      • 項目A
      • 項目B
    • 溶液B
      • 項目A
      • 項目B

我已經建立了我的自定義溶液建立項目B。我實現了一個記錄器記錄哪些動作都發生在那裏使用此代碼測試目的:

protected void TrackMessage(CodeActivityContext context, string message) 
{ 
    context.Track(new BuildInformationRecord<BuildMessage>() 
    { 
    Value = new BuildMessage() 
    { 
     Message = message, 
     Importance = BuildMessageImportance.High 
    } 
    }); 
} 

從根本上說,當我override execute我得到:

Workspace workspace = context.GetValue<Workspace>(CurrentWorkspace); 
foreach (WorkingFolder folder in workspace.Folders) 
{ 
    TrackMessage(context, string.Format("Working Folder: {0}", folder.LocalItem)); 
    //Then get all directories for this working folder 
} 

我的工作文件夾出來作爲Team collaboration然後在整個協作項目中獲取所有AssemblyInfo.*文件!我不知道我必須通過什麼樣的屬性以及它是什麼類型,我試圖研究它以找到哪個屬性用於將TeamCollaboration\Solution B\Project B放入我的文件夾中。

有關我在尋找什麼類型和屬性以實現此目的的任何想法?

回答

4

我認爲你可以通過縮小你在build configuration內的工作文件夾映射來解決這個問題。嘗試將它設置如下:

  • 編輯構建配置
  • 點擊源設置(VS 2012),工作空間(VS 2010)
  • 讓您的映射是這樣的:

狀態源控制文件夾                                   生成代理文件夾                               
活動$ /團隊協作/ B液   $(SourceDir)\                                                

這將使此構建工作空間被限制在解決這個喲你想建立。因此,只有該文件下的AssemblyInfo文件對於您的構建活動纔可見。

希望這會有所幫助。

+1

剛纔發佈了這個答案!當我設置構建時,我認爲工作區會更新,但是沒有。 +1 – LukeHennerley 2013-03-07 12:00:24