3

我正在创建一个自定义构建定义,我想在签入时使用它来增加我的程序集编号。我关注了这个博客Workspace,其中说明了在更改ReadOnly文件时要传入的状态。我有一个像这样的源代码控制结构:

  • 团队协作
    • 解决方案 A
      • 项目A
      • 项目 B
    • 解决方案 B
      • 项目A
      • 项目 B

我已经在解决方案B中为Project 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

1 回答 1

4

我认为您可以通过缩小build configuration. 尝试如下设置:

  • 编辑构建配置
  • 单击源设置(VS 2012),工作区(VS 2010)
  • 使您的映射如下所示:

StatusSource Control Folder                 Build Agent Folder                
Active$/Team collaboration/Solution B  $(SourceDir)\                        

这将使此构建的工作空间仅限于您希望构建的解决方案。因此,您的构建活动只能看到该目录下的 AssemblyInfo 文件。

希望这可以帮助。

于 2013-03-07T11:58:59.597 回答