2010-05-12 3 views
2

NSIS를 사용하여 설치 프로그램을 만들 때 제거 프로그램이 이상한 동작을하는 것 같습니다.NSIS Uninstaller Working Directory

설치 프로그램을 $ INSTDIR에 넣지 않고 $ INSTDIR/subdir/uninstall.exe에 있습니다 (호스트 응용 프로그램 용 애드온 설치 프로그램).

설치 프로그램을 실행하면 응용 프로그램 설치 루트가 $ INSTDIR 대신 $ INSTDIR/subdir이라고 생각합니다. 그런 다음 이미 subdir에있는 것처럼 subdir/*의 모든 파일을 찾을 수 없습니다.

실행 파일을 옮기면 응용 프로그램 설치 루트가있는 위치로 현재 디렉토리를 허용하는 것 같습니다. 나는 그것을 $ INSTDIR로 옮길 수 있으며 모든 것이 잘되어있다.

감사합니다. 제거 프로그램에서

답변

4

$ INSTDIR은

방금 ​​설치의 루트에 제거 프로그램을 넣을 수 있다면, 그게 최선의 방법입니다 (반드시 현재 디렉토리와 동일하지 않음) 제거 프로그램에서 단지 디렉토리입니다 그렇지 않으면 strcpy $instdir "$instdir\.."과 같이 추악한 것을하거나 모든 Delete/RMDir 호출에서 define을 사용해야합니다.

또는 설치 중에 설치 디렉토리를 레지스트리 어딘가에 저장하면 제거 프로그램에서 다시 읽을 수 있습니다.