개발 라이브러리 & 툴

비주얼스튜디오(Visual Studio) 솔루션(*.sln) 커맨드라인 빌드 응용

하늘흐늘 2021. 11. 30. 12:18
반응형

개발을 하다보면 디버그 빌드와 릴리즈 빌드를, 32비트 빌드와 64비트 빌드를, 라이브러리 빌드부터 실행 파일 빌드 등 여러 개의 빌드를 순차적으로 할 때가 있습니다.

이럴 때 마다 비주얼 스튜디오에서 빌드 세팅을 바꾸거나 프로젝트를 바꿔가면서 빌드를 하는 것은 빌드 변경시마다 시간이 걸리는 귀찮은 작업입니다.

이런 경우에 Jenkins와 같은 CI서비스에서 많이 이용되는 커맨드라인 빌드를 응용하여 빌드를 배치로 만들고 실행하면 상대적으로 빌드 시간도 줄이고 편하게 작업을 할 수 있습니다.

비주얼스튜디오 솔루션 커맨드라인 빌드 명령은 MSBuild와 Devenv가 있습니다.
Devenv도 내부적으로 MSBuild를 사용한다고 하니 둘 명령은 비슷하다고 할 수 있습니다.

여기서는 MSBuild를 이용한 배치 살펴보도록 하겠습니다. 만약 Devenv를 이용하시고 싶다면 솔루션파일(sln)을 command line에서 build을 참고하시면 됩니다.

참고로 MSBuild나 Devenv나 비주얼스튜디오를 인스톨하면 생기는 개발 커맨드 프롬프트를 실행하고 해당 커맨드를 쉘에서 실행하면 됩니다. 일반 도스창에서 실행하고 싶으면 거기에 맞게 적절히 설정하면 됩니다. 하지만 여러 버전의 비주얼스튜디오를 인스톨했다면 솔루션에 맞는 비주얼스튜디오 버전의 개발 커맨드 프롬프트를 실행하고 명령을 실행하는 것이 좋아 보입니다.

개인적으로 사용하는 전체 빌드 스크립트 예를 살펴보겠습니다.

call build_system_common.bat
call build_stock_common.bat
msbuild /property:Configuration=Debug /property:Platform=x86 cybos_server.sln
msbuild /property:Configuration=Debug /property:Platform=x64 mongo_server.sln
msbuild /property:Configuration=Debug /property:Platform=x64 tester64.sln

build_system_common.bat, build_stock_common.bat은 각각의 프로젝트의 빌드 들을 포함하는 배치 파일입니다. 각각을 별도로도 사용하는 관계로 전체 빌드에서는 해당 배치를 호출하는 형태로 만들었습니다.
이 후에 msbuild로 시작되는 스크립트는 msbuild를 이용하여 비주얼 솔루션을 빌드하는 예입니다. property 옵션을 이용하여 설정을 하고 솔루션을 지정하여 빌드하면 됩니다.
이렇게 전체 빌드를 배치로 만들어 놓으면 전체를 빌드해야 할 때 배치로 빌드를 실행하여 편하게 작업할 수 있습니다.

 

반응형