C# 빌드 후 이벤트로 버전 정보를 텍스트 파일에 써보자
이번 포스트에는 Visual Studio의 빌드 후 이벤트(Post-Build Event)와 PowerShell script를 사용해 파일 버전 정보를 자동으로 텍스트파일에 기록하는 방법을 알려드리도록 하겠습니다. 응용하면 자동 업데이트 프로그램을 아주 간단하게 만들 수도 있습니다. 이건 다음 포스트에서 설명하도록 하죠.
우선 위와 같은 스크립트를 원하는 ps1 확장자로 저장해주세요. 저는 version.ps1로 저장했습니다. Get-Item 뒤의 경로를 자신의 Debug 또는 Release 폴더의 응용 프로그램 경로로 변경한 뒤, 꺽쇠 뒤의 경로를 버전 정보 텍스트 파일이 쓰여질 경로로 바꿔 저장하시면 됩니다.
그 뒤, 프로젝트 속성의 빌드 후 이벤트 탭에 들어가셔서 아래와 같이 적어주세요.
powershell.exe -file F:\Projects\SELF_UPDATE_TUTORIAL\SELF_UPDATE_TUTORIAL\bin\Debug\version.ps1
마찬가지로 -file 뒤의 경로를 방금 만든 스크립트 파일의 경로로 바꿔서 넣으시면 됩니다.
이렇게 하면 빌드를 마칠 때마다 작성한 파워쉘 스크립트가 동작하여 빌드된 응용 프로그램의 버전 정보를 긁어다가 텍스트 파일에 저장합니다. 참 쉽죠?
빌드할 때마다 버전 정보 자동 업데이트
우선, 필수는 아니지만 버전 정보가 알아서 빌드할 때마다 업데이트 되도록 설정해보겠습니다. 버전 정보를 직접 설정하고 싶은 분은 이 단계를 건너 뛰셔도 됩니다.
위와 같이 Properties/AssemblyInfo.cs의 AssemblyVersion 및 AssemblyFileVersion 부분의 AssemblyFileVersion 행을 주석처리하시고 AssemblyVersion을 1.0.*으로 바꿔주세요. 이렇게 하면 빌드할 때마다 수정 사항이 있을 경우 버전이 자동으로 올라갑니다.
버전 정보를 텍스트 파일에 쓰기
이제 버전 정보를 텍스트 파일에 쓰는 일만 남았습니다. 빌드할 때마다 업데이트 된 버전 정보를 텍스트 파일에 쓰는 작업인데, PowerShell 스크립트로 간단하게 해결할 수 있습니다.
Set-ExecutionPolicy Unrestricted
(Get-Item "F:\Projects\SELF_UPDATE_TUTORIAL\SELF_UPDATE_TUTORIAL\bin\Debug\SELF_UPDATE_TUTORIAL.exe").VersionInfo.FileVersion > "G:\Server\version.txt"
우선 위와 같은 스크립트를 원하는 ps1 확장자로 저장해주세요. 저는 version.ps1로 저장했습니다. Get-Item 뒤의 경로를 자신의 Debug 또는 Release 폴더의 응용 프로그램 경로로 변경한 뒤, 꺽쇠 뒤의 경로를 버전 정보 텍스트 파일이 쓰여질 경로로 바꿔 저장하시면 됩니다.
그 뒤, 프로젝트 속성의 빌드 후 이벤트 탭에 들어가셔서 아래와 같이 적어주세요.
powershell.exe -file F:\Projects\SELF_UPDATE_TUTORIAL\SELF_UPDATE_TUTORIAL\bin\Debug\version.ps1
마찬가지로 -file 뒤의 경로를 방금 만든 스크립트 파일의 경로로 바꿔서 넣으시면 됩니다.
이렇게 하면 빌드를 마칠 때마다 작성한 파워쉘 스크립트가 동작하여 빌드된 응용 프로그램의 버전 정보를 긁어다가 텍스트 파일에 저장합니다. 참 쉽죠?
댓글
댓글 쓰기