2012-11-17 2 views
0

저는 BuildProcessTemplates와 Custom Assemblies 폴더가 빌드 스크립트를 빌드 컨트롤러/에이전트에 자동으로 동기화하는 방법을 좋아합니다. C#으로 사용자 정의 액티비티를 작성했으며 임포트를 추가하는 방법을 이해하여 해당 어셈블리에서 유형을 사용할 수 있습니다.TFS 워크 플로 MSBuild 활동 프로젝트 위치

또한 MSBuild 활동을 통해 MSBuild 파일을 사용하는 방법도 알 수 있습니다. 또한 msbuild 파일 (예 : foo.proj)을 소스 제어의 CustomAssemblies 폴더에 체크인하면 서버의 temp 디렉토리 구조에 msbuild가 표시되는 것을 확인할 수 있습니다.

여기 내 질문이 있습니까? MSBuild 활동의 Project 속성에서 foo.proj의 위치를 ​​어떻게 참조합니까? 나는 변수 등을 찾고 있었지만 함께 쓰지는 못했다.

답변

0

사용자 정의 코드 활동을 사용하여이를 수행하는 방법을 발견했습니다. 기본적으로 이것을 변수 초기화 패턴으로 워크 플로에 연결 한 다음 나중에 다른 작업에 사용합니다. 하지만 가능한 경우 사용자 지정 어셈블리가 필요없이이 작업을 수행하려고합니다.

using System.IO; 
using System.Activities; 
using System.Reflection; 
using Microsoft.TeamFoundation.Build.Client; 

namespace BuildTasks.Activities 
{ 

    [BuildActivity(HostEnvironmentOption.All)] 
    public sealed class FindCustomAssembliesDirectory : CodeActivity 
    { 
     public OutArgument<string> CustomAssembliesDirectory { get; set; } 

     protected override void Execute(CodeActivityContext context) 
     { 
      context.SetValue(CustomAssembliesDirectory, new FileInfo(Assembly.GetExecutingAssembly().Location).Directory.FullName); 
     } 
    } 
} 
관련 문제