Share via


사용자 지정 빌드 프로세스 활동 사용 및 개발

C# 활동의 "Hello World"

사용자 지정 빌드 프로세스 템플릿을 만든 후 Windows 워크플로 명령 및 기본 TFBuild(Team Foundation Build) 작업을 사용하여 고유 비즈니스 논리를 구현할 수 있습니다. 이러한 도구가 충분하지 않은 경우 타사 작업을 사용하거나, 필요에 따라 CodeActivity에서 고유 .NET Framework 코드를 구현합니다.

Windows 일괄 처리 파일이나 PowerShell 스크립트에 사용자 지정 빌드 프로세스 기능을 코딩할 수 있는 경우 스크립트를 업로드하여 빌드 프로세스의 일부로 실행할 수 있습니다.이 방법은 사용자 지정 빌드 프로세스를 만드는 것보다 빠르고 간편할 수 있습니다.빌드 프로세스에서 스크립트 실행을 참조하세요.

  • 사용자 지정 빌드 프로세스 활동 만들기

  • 빌드 프로세스 템플릿 편집

  • 사용자 지정 빌드 프로세스 업로드

    • TFVC 아이콘 TFVC 팀 프로젝트에서 사용자 지정 빌드 프로세스 업로드 및 사용

    • Git 아이콘 Git 팀 프로젝트에서 사용자 지정 빌드 프로세스 업로드 및 사용

  • 사용자 지정 빌드 프로세스 사용

  • 빌드 실행

  • Q & A

빌드 요약의 "Hello World"

사용자 지정 빌드 프로세스 활동 만들기

중요

시작하기 전에 템플릿의 복사본을 가져와서 코드 프로젝트에 저장합니다.아직 실행하지 마치지 않은 경우 여기에서 방법을 참조하십시오.

빌드 프로세스 템플릿과 같은 솔루션에서 빌드 프로세스 작업을 개발해야 합니다.이러한 방식으로 작업하면서 프로세스 템플릿에 있는 작업 중 하나가 필요할 경우 워크플로 디자이너 도구 상자에서 작업을 사용할 수 있습니다.하지만 작업의 소스 코드는 빌드 프로세스 템플릿이 포함된 것과 별도의 코드 프로젝트에 보관해야 합니다.

  1. 빌드 프로세스 템플릿 코드 프로젝트가 포함된 솔루션에 새 C# 또는 Visual Basic 코드 프로젝트를 추가합니다.

    BuildProcessSource 솔루션의 새 프로젝트

    새 프로젝트

  2. 새 코드 프로젝트에 다음 참조를 추가합니다.

    코드 프로젝트에 이러한 참조를 추가하려면 어떻게 해야 합니까?

    코드 프로젝트를 저장합니다.

  3. 프로젝트에 새 작업을 추가합니다.

    소스 코드 프로젝트의 새 항목

    새 항목 추가

  4. CodeActivity를 구현합니다(예: Hello.cs).

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Activities;
    using Microsoft.TeamFoundation.Build.Workflow.Activities;
    using Microsoft.TeamFoundation.Build.Client;
    using Microsoft.TeamFoundation.Build.Workflow.Tracking;
    
    namespace BuildProcessSource
    {
        // enable the build process template to load the activity
        [BuildActivity(HostEnvironmentOption.All)]
        // keep the internal activity operations from appearing in the log
        [ActivityTracking(ActivityTrackingOption.ActivityOnly)]
        public sealed class Hello : CodeActivity
        {
            // Define an activity input argument of type string
            public InArgument<string> SayHelloTo { get; set; }
    
            // If your activity returns a value, derive from CodeActivity<TResult>
            // and return the value from the Execute method.
            protected override void Execute(CodeActivityContext context)
            {
                // Obtain the runtime value of the Text input argument
                string text = context.GetValue(this.SayHelloTo);
    
                // Add our default value if we did not get one
                if (text == null || text == "")
                {
                    text = "World";
                }
    
                // Write the message to the log
                context.TrackBuildWarning("Hello " + text, BuildMessageImportance.High);
            }
        }
    }
    

    Activity1.xaml 파일이 필요하지 않으므로 필요할 경우 삭제할 수 있습니다.

  5. Visual Studio에서 솔루션 빌드(키보드: Ctrl+Shift+B).

완료 시 솔루션은 다음과 같습니다.

사용자 지정 빌드 프로세스 솔루션의 예

빌드 프로세스 템플릿 편집

솔루션에서 작업을 빌드 프로세스 템플릿으로 끌어 놓는 방식으로 편집합니다. 템플릿에 작업을 추가했으면 속성을 설정합니다(키보드: F4).

솔루션에서 빌드 프로세스 템플릿 편집

작업을 마쳤으면 템플릿을 저장합니다.

사용자 지정 빌드 프로세스 업로드

사용자 지정 빌드 프로세스 템플릿과 활동을 사용하는 빌드를 정의하려면 먼저 이들을 업로드하고 사용하도록 설정해야 합니다.

  • TFVC 아이콘 TFVC 팀 프로젝트에서 사용자 지정 빌드 프로세스 업로드 및 사용

  • Git 아이콘 Git 팀 프로젝트에서 사용자 지정 빌드 프로세스 업로드 및 사용

TFVC 팀 프로젝트에서 사용자 지정 빌드 프로세스 업로드

TFVC 아이콘 TFVC 팀 프로젝트에서

  1. 솔루션을 구축했는지 확인합니다(키보드: Ctrl + Shift + B).

  2. 빌드 프로세스 소스를 저장하려는 팀 프로젝트에 연결합니다(키보드: Ctrl + 0, C).

  3. 소스 제어 탐색기에서 작업 코드 프로젝트가 포함된 폴더에 항목을 추가합니다.

    소스 제어 탐색기

  4. .dll 파일이 포함된 폴더로 이동한 다음 해당 파일을 선택합니다. 예: C:\Users\YourName\Source\Workspaces\FabrikamTFVC\BuildProcessTemplates\BuildProcessSource\Source\bin\Debug.

    TFVC 버전 제어에 빌드 프로세스 추가

  5. 과정을 마치고 파일을 추가합니다.

    TFVC 버전 제어에 빌드 프로세스 추가

  6. 변경 내용을 체크 인합니다.

    보류 중인 변경 내용

Git 팀 프로젝트에서 사용자 지정 빌드 프로세스 업로드

Git 아이콘 Git 팀 프로젝트에서

  1. 중요:

    • 이진 파일을 저장할 경우(특히 큰 파일에 수정 내용이 많은 경우) Git 리포지토리의 크기가 매우 커질 수 있습니다. 사용자 지정 빌드 프로세스 이진 파일을 앱을 빌드하는 코드와 다른 리포지토리에 저장하는 것이 좋습니다. 이 목적을 위해 별도의 팀 프로젝트를 만들거나 기존 팀 프로젝트에 추가 리포지토리를 만들 수 있습니다.

    • 이진 파일은 Git 리포지토리의 하위 폴더에 저장해야 합니다. 이진 파일을 루트 폴더에서 사용하려고 시도할 경우 git 분기 없음 오류 메시지로 차단될 수 있습니다.

  2. 솔루션을 구축했는지 확인합니다(키보드: Ctrl + Shift + B).

  3. 빌드 프로세스 소스를 저장하려는 팀 프로젝트에 연결합니다(키보드: Ctrl + 0, C).

  4. Git 명령 프롬프트를 엽니다.

    변경 내용 페이지에서 명령 프롬프트를 엽니다.

    Q: 명령 프롬프트가 열리지 않습니다. 어떻게 해야 합니까? A: Git 명령 프롬프트를 사용하도록 설정합니다.

  5. Git 명령 프롬프트를 사용하여 .dll 파일을 추가합니다. 예를 들면 다음과 같습니다.

    cd c:\users\YourName\source\repos\BuildProcesses\BuildProcessSource\Source\bin\Debug
    
    git add Source.dll -f
    
  6. 변경 내용을 커밋합니다.

    변경 내용 페이지의 커밋 단추

  7. 커밋을 동기화 또는 푸시합니다.

    변경 내용 페이지의 동기화 링크

    동기화되지 않은 커밋 페이지의 동기화 단추 및 푸시 링크

사용자 지정 빌드 프로세스 사용

사용자 지정 빌드 프로세스를 실행하기 전에 TFS에 업로드한 이진 파일에 대한 빌드 컨트롤러를 가리키고 빌드 정의의 빌드 프로세스 템플릿을 선택해야 합니다.

  1. 빌드 페이지에서(키보드: Ctrl + 0, B) 작업을 선택하고 빌드 컨트롤러 관리를 선택합니다.

  2. 빌드 컨트롤러 관리 대화 상자에서 빌드 프로세스 실행에 사용할 컨트롤러를 강조 표시하고 속성을 선택합니다.

    빌드 컨트롤러 관리 대화 상자

  3. 사용자 지정 어셈블리에 대한 버전 제어 경로를 지정합니다.

    빌드 컨트롤러 속성 대화 상자

    VisualStudioEllipsesButton 스크린 샷 위의 단계에서 빌드 프로세스를 업로드한 폴더의 상위 폴더를 탐색합니다.

    • TFVC 아이콘 TFVC 예제: $/FabrikamTFVC/BuildProcessTemplates/BuildProcessSource/Source/bin/Debug

    • Git 아이콘 Git 예제: BuildProcessSource/Source/Bin/Debug

      Git 값을 표시하는 찾아보기 대화 상자

      사용자가 입력하는 값이 자동으로 vstfs 경로로 변환됩니다. 예: vstfs:///Git/VersionedItem/FabrikamGit/BuildProcesses/master/BuildProcessSource/Source/Bin/Debug.

      사용자 지정 어셈블리의 버전 제어 경로

  4. 빌드 정의를 만들거나 수정한 다음 사용자 지정 빌드 프로세스 템플릿을 선택합니다(아직 수행하지 않은 경우).

    사용자 지정 프로세스 템플릿이 포함된 빌드 정의

빌드 실행

빌드를 큐에 대기시킵니다. 결과는 다음과 비슷합니다.

빌드 요약의 "Hello World"

Q & A

Q: 권한이 없기 때문에 시스템에 의해 차단되었습니다.어떻게 하면 권한을 얻을 수 있습니까?

A: Team Foundation Server에 대한 사용 권한 참조

Q: TFBuild 워크플로를 사용할 때 필요한 참조를 추가하려면 어떻게 해야 합니까?

A: 참조를 추가하려면 참조 관리자를 사용합니다.

코드 프로젝트 참조를 보고 참조 관리자를 엽니다.

참조 상황에 맞는 메뉴

참조 관리자 대화 상자

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ReferenceAssemblies\v2.0으로 탐색한 다음 다음을 선택하고 추가합니다.

참조할 파일 선택 대화 상자

참조 관리자 대화 상자

Q: 사용자 지정 빌드 프로세스에서 오류가 발생하는 원인은 무엇입니까?

A: 오류의 몇 가지 일반적 원인

Q: Windows Workflow Foundation이란 무엇입니까?어떻게 사용합니까?

A: Windows Workflow Foundation을 참조하세요.

Q: 기본 작업에 대해 알아보려면 어떻게 해야 합니까?

A: Team Foundation 빌드 활동

Q: 어디에서 빌드 프로세스 템플릿, 워크플로 작업, 스크립트를 구할 수 있습니까?

A: 커뮤니티 TFS 빌드 확장을 참조하세요.

Q: 사용자 지정 빌드 프로세스를 개발하는 방법에 대해 자세히 알아보려면 어떻게 해야 합니까?

A: 답변: Team Foundation Build 프로세스 사용자 지정을 참조하세요.