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