C++/CLI로 만든 어셈블리를 배포하다 보니 버전 관리가 필요했다. 버전은 어떻게 기록해야 할까?


■ AssemblyInfo.cpp ?!

Visual Studio 에서 C++/CLI 프로젝트의  솔루션 탐색기를 보면 AssemblyInfo.cpp 파일이 있다. 

 

AssemblyInfo.cpp 파일을 열어 보면 어셈블리 버전을 기록할 수 있는 여러 Attribute 값이 보인다.



"의외로 간단히 해결 되는구나!" 생각하고 각각의 Attribute 값을 입력하고 빌드하였다.
하지만 생성된 어셈블리의 파일 버전을 보니 여전히 공백으로 표시된다.

자료를 찾아보니 C++/CLI 컴파일러는 C# 등의 컴파일러와는 다르게 자동으로 파일 버전을 기록해 주지 않는다고 한다. 윈도우즈 탐색기에서 어셈블리에 대한 파일 버전을 보고 싶으면 직접 입력해야 한다고 한다.
그렇다면 왜 AssemblyInfo.cpp 파일이 프로젝트 생성시 자동으로 만들어줄까?? 무언가 있을 것 같긴 한데..

참고) How to use AssemblyInfo.cpp - Visual C++ Developer Center


■ Using Version Resource

위에서 참조한 글을 읽어 보면 직접 버전 리소스를 추가하고 기록하면 된다고 한다.

Visual Studio 에서 리소스 뷰를 통해 작업을 해야한다.

*)
모든 환경에서 테스트 해본게 아니라 정확하지 않을 수 있는데 Visual Studio 개발 환경 언어가 C# 이라면
아마 리소스 뷰로 작업할 수 없을것이다.



Visual Studio 의 개발 환경을 초기화 한 후 C++ 로 변경해 주었다.


리소스뷰에서 app.rc 을 선택한 후 마우스 오른쪽 버튼을 눌러 "리소스 추가" 선택해 주자.



"Version"을 추가하면 어셈블리의 버전 정보를 기록할 수 있는 페이지가 보인다. 이 곳에 정보를 입력하면 어셈블리의 버전 정보가 기록된다.


 

Posted by six605
,