3

チェックイン時にアセンブリ番号を増やすために使用するカスタムビルド定義を作成しています。ファイルを変更するときに渡すと述べているこのブログをフォローしました。私は次のようなソース管理構造を持っています:WorkspaceReadOnly

  • チームコラボレーション
    • ソリューションA
      • プロジェクトA
      • プロジェクトB
    • ソリューションB
      • プロジェクトA
      • プロジェクト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
}

My 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 に答える