새소식

Programming/installshield

[installshield] 프로젝트 바이너리 경로 변수로 관리하기

  • -

그동안 하드 코딩된 파일 그룹 경로 때문에 같은 프로젝트 다른 버전을 만들 때마다 copy & paste & 수동 경로 변경하는 만행을 저지르며 installshield(이하 is) 프로젝트를 사용해왔었습니다...

분명 INSTALLROOT 라는 변수에 저 값이 들어있는 것 같은데 이것을 사용할 수 없을까 고민만 항상 하다가 만행에 가까운 사용을 계속 해왔었죠...

그러다가 oneshot님 블로그 글에서 'Link Type' 항목의 Static, Dynamic 설명을 보고서야 이것이 나한테 필요한 것이다! 라는 느낌이 왔습니다!!


is 버전이 다른지 UI가 달라서 찾는데 시간이 좀 걸렸는데 is 6.0에서 'File Groups' 탭에 기존 파일 그룹이 등록되어 있는데 이곳에서 어느 하나를 선택해보면 오른쪽 영역에 해당 그룹의 속성값들이 보여집니다.



그림을 보시면 'File Group Link Type'에 'Static Link(s)'라고 표시되어 있습니다. 이것을 마우스로 딱딱(double click)해봅시다!! 해당 속성의 속성창(Properties)이 실행됩니다.



라디오 버튼이 Static Links로 되어 있는데 Dynamic Links를 선택해 줍시다. 여기까지는 아무 변화(?)가 없습니다.

제가 빨간 네모 상자로 강조한 삼각형 글자가 들어있는 버튼을 클릭해줍니다.



Browse 선택해서 특정 폴더를 지정해주고 끝낼 수도 있지만... 그렇게 하면 앞으로 경로가 바뀔 때마다 모든 그룹에서 다시 선택해줘야 합니다. 그렇다면 굳이 Dynamic Links 를 제가 쓰려는 의미가 없어집니다.. 과감히 Variable... 항목을 선택해봅시다.

Build Settings 창이 새로 생성되고 그동안 제가 찾아 헤맸던 변수(Variables) 설정이 가능한 탭이 보입니다.



뭐 생각해 볼 필요도 없이 Add를 눌러서 변수를 추가하고 드디어 바이너리 경로를 값으로 전달해 주면 1차 목표 완료입니다 :)

참고로 위의 ISPROJECTDIR은 is 프로젝트(ipr 파일이 있는 폴더) 위치를 가리키고 있고 ISPROJECTBINDIR은 제가 직접 추가한 바이너리 폴더 위치입니다.


변수 종류가 3개나 되는데 나머지는 뭐하는 넘들인지 잘 모르겠고... 저는 Standard Variable 을 선택했습니다. 무식하면 당당하다고... 관련 정보는 여유가 될 때 갱신해놓겠습니다...




변수 이름 적당히 짓고 원하는 경로 지정해주고 이 변수를 선택하고 확인 버튼을 눌러주면 내가 추가한 변수가 경로에 나타납니다.


내가 등록한 변수 경로 값에 현재 그룹에서 필요한 값만 추가 수정해서 확인 버튼을 누르면 이제 파일 그룹을 일일이 수정할 필요 없이 저 <MyVariable1> 값만 변경해주면 됩니다. 버전 관리에도 수월해질 것 같습니다.


이미 잘 쓰시는 분들에겐 큰 의미 없는 팁이지만 이 기능을 몰라 설치 패키지 컴파일 시도할 때마다 인터넷을 찾아 뒤지던 저에겐 저랑 비슷한 경험을 하실(하셨을) 분들을 위해 기록을 남깁니다.


참고로 저 변수는 is 프로젝트 폴더/Text Substitutions/Build.tsb 파일에 기록됩니다. 이렇게 UI로 추가한 변수가 실제로 어떻게 기록되었는지 확인하시면 손으로(?) 추가하셔도 가능하지 않을까 싶습니다.(KeyType 값은 3으로 하셔야 합니다.)

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.