새소식

DEV/NSIS

[NSIS] Installer 버전 정보 설정( + 빌드 시 변경)

  • -
728x90
1
2
3
4
5
6
7
8
9
10
11
12
!define PRODUCT_NAME    "Test Product"
!define COMPANY_NAME    "Test Company"
!define PRODUCT_VERSION "1.0.1.25"
 
VIAddVersionKey 'ProductName'     '${PRODUCT_NAME} Setup'
VIAddVersionKey 'Comments'        '${PRODUCT_NAME} Setup'
VIAddVersionKey 'CompanyName'     '${COMPANY_NAME} Co., Ltd.'
VIAddVersionKey 'LegalCopyright'  'All Rights Reserved.'
VIAddVersionKey 'FileDescription' '${PRODUCT_NAME} Setup'
VIAddVersionKey 'FileVersion'     '${PRODUCT_VERSION}'
VIAddVersionKey 'ProductVersion'  '${PRODUCT_VERSION}'
VIProductVersion '${PRODUCT_VERSION}'
cs

 

 빌드 하면, 속성->자세히 에 노출되는 파일 정보 설정됨

 


  • NSIS 사이트 예시대로 하면,
    저중에 자주 변경되는(사실상 빌드 때마다 변경되는) 파일 버전을 변경하기 위해선
    빌드 시 마다 스크립트 파일을 열어서 수동으로 변경해야 하는 불편함이 있다.(사실상 하드코딩이기에)

    그래서 빌드 시 자동으로 버전 정보 적용하는 방법
1
2
3
4
5
6
7
8
9
10
11
12
13
!define PRODUCT_NAME    "Test Product"
!define COMPANY_NAME    "Test Company"
;!define PRODUCT_VERSION "1.0.1.25" ;제거
!searchparse /file .\version\version.ini `version=` PRODUCT_VERSION ;추가
 
VIAddVersionKey 'ProductName'     '${PRODUCT_NAME} Setup'
VIAddVersionKey 'Comments'        '${PRODUCT_NAME} Setup'
VIAddVersionKey 'CompanyName'     '${COMPANY_NAME} Co., Ltd.'
VIAddVersionKey 'LegalCopyright'  'All Rights Reserved.'
VIAddVersionKey 'FileDescription' '${PRODUCT_NAME} Setup'
VIAddVersionKey 'FileVersion'     '${PRODUCT_VERSION}'
VIAddVersionKey 'ProductVersion'  '${PRODUCT_VERSION}'
VIProductVersion '${PRODUCT_VERSION}'
cs


설명하자면, 

지정 경로에 있는 파일 (.\version\version.ini ) 을
지정된 형태의 값을 읽어 변수에 저장 (`version=` PRODUCT_VERSION) 
하여 빌드 한다.

version 파일명 및 형식은 그냥 개발자가 정하면 되고, 예시의 파일은

 이런식.

 

 

 

이렇게 설정하면, 외부의 빌드 시스템(젠킨스와 같은)에서 빌드 시 해당 파일의 값을 변경 후 빌드 하면
자동으로 변경된 버전으로 빌드 된다.

728x90

'DEV > NSIS' 카테고리의 다른 글

[NSIS] 함수 들  (0) 2022.10.31
Contents

Copied the posting URL.

Please sympathize with me if this article was helpful.