본문 바로가기
IT/개발환경

NSIS script generator

by rapker 2023. 4. 12.
반응형

nsi editor로 스크립트를 사용해서 인스톨 프로그램을 편하게 만들기는 성공 했지만

 

막상 사용하려고 하니 응용프로그램의 버전이 오를 때 마다 스크립트 수정이 필요하고 또,

응용프로그램이 필요로 하는 파일들에 변경이 있을 때에도 스크립트에 수정이 필요하기 때문에

이를 자동화 하기 위해 .nsi 제너레이터를 만들 필요가 생겼습니다.

 

 

샘플 응용프로그램 준비

 

가장 먼저 generator를 만들고 테스트할 샘플(응용프로그램 구성)이 필요합니다.

 

일단 샘플 폴더 구조는 이렇습니다.

Root
    Release
        data1 (폴더)
            data2 (폴더)
                data2.txt
            data1.txt
        AppMainExe.exe
    testAppLicence.txt
    testscript.nsi

 

 

 

.nsi Generator

 

일단 nsi generator를 뚝딱! 만들어서 컴파일을 하니까 오류가 발생하네요... ㅠ

C:\TestBuilder>"C:\Program Files (x86)\NSIS\makensis.exe" testscript.nsi
Processing config: C:\Program Files (x86)\NSIS\nsisconf.nsh
Processing script file: "testscript.nsi" (ACP)
Bad text encoding: testscript.nsi:6
Error in script "testscript.nsi" on line 6 -- aborting creation process

 

 

어찌저찌 검색해보니 생성된 .nsi 스크립트가 utf8 형식이라서

컴파일할 때 .nsi 스크립트가 utf8 형식이라는 옵션을 넣어서 컴파일 성공 했습니다.

 

이렇게 사용 했었는데

"C:\Program Files (x86)\NSIS\makensis.exe" testscript.nsi

 

이렇게 바꿔서 해결

"C:\Program Files (x86)\NSIS\makensis.exe" /INPUTCHARSET UTF8 testscript.nsi

 

 

인스톨러 생성하고 무사히 설치까지 마쳤는데 다른 문제가 있네요.... -_-;

 

.nsi main section에 필요한 디렉터리와 파일을 아래와 같은 순서로 추가 했습니다.

1. Release 하위에 모든 디렉터리를 먼저 추가

2. Release 하위에 모든 파일들을 추가

 

이런 식으로...

 

이 상태로 인스톨러 잘 생성되어서 막상 설치를 해보니

모든 파일이 data2 폴더에 생성되었습니다.

 

SetOutPath 라는것이 단순히 디렉터리 생성만 하는 것이 아니라

현재 작업공간의 변경도 같이 변경이 되는 모양입니다.

 

 

nsi generator 손좀 봐주고 오겠습니다.....

 

...

 

모든 작업은 끝났습니다.

 

728x90

 

최종 사용된 .nsi  generator

NewBehaviourScript.cs
0.01MB

생성된 .nsi 파일

testscript.nsi
0.00MB

 

.generator로  .nsi 컴파일 하는 과정 생략!!!

 

 

 

 

인스톨러 테스트

 

설치된 모습

 

 

uninst.exe로 삭제하면 깔끔하게 지워져 있습니다.

반응형
LIST

'IT > 개발환경' 카테고리의 다른 글

Docker Desktop limit  (0) 2023.04.13
Windows Docker Desktop Autorun  (0) 2023.04.13
NSIS 스크립트에 URL scheme 추가  (0) 2023.04.11
Jenkins로 AKS CI/CD 구축 2/2 - Agent 구성  (1) 2023.04.10
URL Scheme으로 앱 실행  (0) 2023.04.10