如何在TFS自定义构建活动中获得构建项目
本文关键字:构建 活动中 项目 自定义 TFS | 更新日期: 2023-09-27 18:02:58
我正在创建一个自定义构建定义,我想使用它来增加检入时的汇编号。我遵循这个博客,它说在改变ReadOnly
文件时要传递Workspace
。我有一个像这样的源代码控制结构:
- 团队协作
- 解决方案
- 项目
- 项目B
- 解决方案B
- 项目
- 项目B
- 解决方案
我已经在解决方案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
进入我的文件夹。
关于我正在寻找什么类型和属性来实现这一点的任何想法?
我认为您可以通过缩小build configuration
内的工作文件夹映射来纠正此问题。尝试如下设置:
- 编辑构建配置
- 点击源设置(VS 2012),工作空间(VS 2010)
- 让你的映射看起来像这样:
源代码控制Folder ,,,,,,,,,,,,,,,,
构建代理Folder ,,,,,,,,,,,,,,,
积极/团队协作/解决方案B 美元, (SourceDir)美元',,,,,,,,,,,,,,,,,,,,,,,,
这将使此构建的工作空间限制为您希望构建的解决方案。因此,只有其中的AssemblyInfo文件对构建活动是可见的。