Dev

빌드 이벤트 지정

에린_1 2024. 8. 13. 09:45
728x90

빌드 이벤트 지정

과정

  1. 솔루션 탐색기에서 빌드 이벤트를 지정할 프로젝트를 선택한다.
  2. 프로젝트 메뉴에서 (ProjectName) 속성을 클릭하거나, 솔루션 탐색기에서 Alt+Enter를 누른다.
  3. 빌드 > 이벤트를 선택한다.
  4. 빌드 전 이벤트 섹션에서 빌드 이벤트의 구문을 지정한다.
    • 프로젝트가 최신 상태이고 빌드가 트리거되지 않으면 빌드 전 이벤트가 실행되지 않는다.
  5. 빌드 후 이벤트 섹션에서 빌드 이벤트의 구문을 지정한다.
    • .bat 파일을 실행하는 모든 빌드 후 이벤트 명령 앞에 call 문을 추가한다. 예를 들어 call MyFile.bat 또는 call MyFile.bat call MyFile2.bat 이다. 경로는 프로젝트 폴더의 상대 경로이거나 절대 경로일 수 있다.
  6. 빌드 후 이벤트 실행 상자에서 빌드 후 이벤트를 실행할 조건을 지정한다.
    • 긴 구문을 추가하거나 빌드 전 이벤트/빌드 후 이벤트 명령줄 대화 상자에서 임의의 빌드 매크로를 선택하려면, 줄임표 단추(…)를 클릭하여 편집 상자를 표시한다.

빌드 이벤트 명령 만들기

  • 빌드 이벤트 명령에는 명령 프롬프트 또는 .bat 파일에서 유효한 모든 명령이 포함될 수 있다. 일괄 처리 파일의 이름 앞에 call 을 사용하여 모든 후속 명령이 실행되도록 한다. 일괄 처리 파일 자체는 출력 폴더에서 실행된다.
  • 모든 구성에 동일한 일괄 처리 파일이 필요한 경우 프로젝트 파일과 동일한 폴도에 배치하고 해당 파일에 대한 상대 경로를 사용할 수 있다. 예를 들면 call ../../prebuild.bat 다음과 같다.
  • Powershell MyPowerShellScript.ps1 와 같은 명령을 입력하여 PowerShell 스크립트를 실행할 수 있다. PowerShell 스크립트의 경로는 절대 경로이거나 프로젝트 디렉터리를 기준으로 할 수 있다. 스크립트를 실행하려면 운영 체제의 PowerShell 스크립트에 대한 실행 정책이 적절하게 설정되어 있는지 확인해야 한다.
  • bash와 같은 다른 셸을 사용하려는 경우 일반적으로 Windows 명령 프롬프트에서 셸 스크립트를 시작하는 데 사용하는 것과 동일한 명령 구문을 사용한다.

프로젝트 파일에서

  • 이전 단계를 수행할 때 Visual Studio는 제공된 단계를 실행하는 데 필요한 MSBuild 코드 PreBuild 또는 PostBuild 대상을 추가하여 프로젝트 파일을 수정한다. 프로젝트 파일을 열고 단계를 볼 수 있다. 변경 내용을 저장한 후 프로젝트 속성의 빌드 > 이벤트 섹션에 변경 내용이 표시된다.
  • Exec 요소는 MSBuild Exec 작업을 참조한다.

오류 및 기타 출력

  • 빌드 이벤트의 출력은 출력 창의 빌드 섹션에 기록된다. 다른 창보기 > 출력 창을 선택하거나 Ctrl+Alt+O를 누리면 볼 수 있다.
  • 빌드 전 또는 빌드 후 이벤트가 성공적으로 완료되지 않으면 성공적인 작업을 나타내는 0 이외의 코드로 이벤트 작업이 종료되도록 하여 빌드를 종료할 수 있다. 0 종료 코드는 성공적인 작업을 나타낸다. 다른 종료 코드는 오류로 간주된다.
  • 빌드 전 이벤트가 실패하면 오류 목록 창에 다음과 같은 오류가 표시될 수 있다.
MSB3073    The command "call c:\\source\\repos\\prebuild.bat" exited with code 1.
  • 오류 목록 창에 정보가 충분하지 않은 경우 출력 창을 사용하여 일괄 처리 파일의 출력을 포함하여 전체 빌드 출력을 볼 수 있다.
    • 오류 목록 창은 이벤트에 대해 입력한 첫 번째 줄인 한 줄의 출력으로 제한된다. 오류 목록 창 출력이 중요한 경우 이벤트에 둘 이상의 줄을 배치하면 안된다. Windows 명령 프롬프트 또는 운영 체제에서 일괄 처리 파일을 만든 다음 이벤트에만 사용한다.

매크로

  • 일반적으로 사용할 수 있는 매크로는 MSBuild 공용 속성에 나열된다. .NET SDK 프로젝트의 경우 추가 속성은 Microsoft.NET.Sdk의 MSBuild 속성에 나열된다.
  • 빌드 이벤트에 대한 스크립트에서 프로젝트 이름 또는 출력 폴더 위치와 같은 일부 프로젝트 수준 변수의 값을 참조하려고 할 수 있다. 이전 버전의 Visual Studio에서는 이를 매크로라고 했다. 최신 버전의 Visual Studio에서 매크로에 해당하는 속성은 MSBuild 속성이다.
  • MSBuild는 빌드를 수행할 때 Visual Studio에서 프로젝트 파일을 처리하는 데 사용하는 빌드 엔진이다. IDE의 빌드 이벤트는 프로젝트 파일에서 MSBuild 대상을 생성한다.
  • 프로젝트 파일의 대상에서 사용 가능한 모든 MSBuild 속성(예: $(OutDir) 또는 $(Configuration) 을 사용할 수 있다. 이 이벤트에서 사용할 수 있는 MSBuild 속성은 프로젝트 파일에서 암시적으로 또는 명시적으로 가져온 파일(예: .props 및 .targets 파일) 및 프로젝트 파일(예: PropertyGroup 요소)에 설정된 속성에 따라 달라진다.
  • 각 속성의 정확한 철자를 사용해야 한다. 속성의 철자가 잘못되면 오류가 보고되지 않는다. 대신, 정의되지 않은 속성은 빈 문자열로 평가된다.

주의 사항

  • 이미 빌드가 진행한 후에 다시 빌드를 진행 할 때는, 빌드가 생략되므로 매크로의 실행도 생략될 수 있다. 따라서 빌드와 매크로가 제대로 실행되었는지 VisualStudio의 Output Window를 확인해야한다.
  • 매크로 실행 중에 오류가 발생하거나, 잘못된 매크로를 작성했을 때 오류를 확실하게 알 수 없는 경우도 있다. 따라서 복잡한 매크로는 배치파일(.bat)로 작성하거나 실행파일(.exe)로 작성하는 것이 도움이 될 수 있다.

참조

https://learn.microsoft.com/ko-kr/visualstudio/ide/how-to-specify-build-events-csharp?view=vs-2022

728x90

'Dev' 카테고리의 다른 글

Visual Studio Solution Build, Rebuild, Clean  (0) 2024.08.14
CI/CD 파이프라인  (0) 2024.08.13
젠킨스(Jenkins)  (0) 2024.08.09
오토스케일링(AutoScaling)  (0) 2024.08.08
데이터베이스 샤딩  (0) 2024.08.07