Setup Project 동적으로 로드되는 DLL이 존재하는 경로를 PATH 환경 변수에 추가
Bit / 2012. 2. 3. 16:56
동적으로 로드되는 DLL이 존재하는 경로를 PATH 환경 변수에 추가
환경 변수는 레지스트리의
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Path,
현재 사용자에게만 적용된다면
HKEY_USERS\.DEFAULT\Environment, HKEY_CURRENT_USER\Environment 항목을 수정
VS2008 설치 프로젝트의 레지스트리 편집기에서는 레지스트리의 생성/수정만 가능하고, 기존 레지스트리의 값을 참조할 방법이 없다.
그래서 대부분 외부 프로그램이나 vbs 스크립트 등을 이용해서 기존 레지스트리를 참조하는 방법을 사용
레지스트리 편집기의 설정값에 넣을 수 있는 예약어에는 기존 환경 변수를 참조할 수 있는 기능이 있다.
다음처럼 사용하면 된다
[TARGETDIR];[%Path]
* [TARGETDIR] : 설치 프로그램에서 사용자가 지정한 설치 폴더
* [%Path] : Path 환경 변수. 커맨드 프롬프트(cmd.exe)에서 path를 입력해서 확인
ex) Path=C:\Windows\System32;
TARGETDIR=C:\Program Files\TestProgram\
=> Path=C:\Program Files\TestProgram\;C:\Windows\System32;
레지스트리 키를 위 값으로 설정하면, 기존 Path 환경 변수에 원하는 경로를 추가할 수 있다.
하지만 이 방법에도 단점이 있는데,
- 환경 변수만 참조 가능하다 : 기존 레지스트리 키를 참조할 수는 없다.
- 프로그램 제거 시 PATH 환경 변수가 사라진다.
환경 변수는 레지스트리의
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Path,
현재 사용자에게만 적용된다면
HKEY_USERS\.DEFAULT\Environment, HKEY_CURRENT_USER\Environment 항목을 수정
VS2008 설치 프로젝트의 레지스트리 편집기에서는 레지스트리의 생성/수정만 가능하고, 기존 레지스트리의 값을 참조할 방법이 없다.
그래서 대부분 외부 프로그램이나 vbs 스크립트 등을 이용해서 기존 레지스트리를 참조하는 방법을 사용
레지스트리 편집기의 설정값에 넣을 수 있는 예약어에는 기존 환경 변수를 참조할 수 있는 기능이 있다.
다음처럼 사용하면 된다
[TARGETDIR];[%Path]
* [TARGETDIR] : 설치 프로그램에서 사용자가 지정한 설치 폴더
* [%Path] : Path 환경 변수. 커맨드 프롬프트(cmd.exe)에서 path를 입력해서 확인
ex) Path=C:\Windows\System32;
TARGETDIR=C:\Program Files\TestProgram\
=> Path=C:\Program Files\TestProgram\;C:\Windows\System32;
레지스트리 키를 위 값으로 설정하면, 기존 Path 환경 변수에 원하는 경로를 추가할 수 있다.
하지만 이 방법에도 단점이 있는데,
- 환경 변수만 참조 가능하다 : 기존 레지스트리 키를 참조할 수는 없다.
- 프로그램 제거 시 PATH 환경 변수가 사라진다.