2011-08-01 2 views
2

현재 구성 요소가없는 구성 요소의 설치 프로그램을 만듭니다 (예 : 우수한 편집기 라이브러리 SynEdit), 이것은 내가했던 것보다 디자인과 런타임 패키지를 더 잘 이해할 수있게 해준다.설치자를 만들 때 디자인 타임 패키지에서 Delphi 런타임 패키지의 '필수'정의를 정확하게 수행하는 방법

나는 가장 깨끗한 배치를 원한다. 그래서 나는 많은 유닛이 런타임 패키지에 들어갈 것이라는 것을 알고 있으며, 시간이 지나면 '런타임 패키지로 빌드'를 사용하여 배포 할 수있다. 그러나 종종 디자인 타임 패키지에는 런타임 패키지가 필요하며 여기가 문제가되고 있습니다. 일반적으로 런타임 패키지 프로젝트 (xxx-RXE)와 디자인 타임 패키지 프로젝트 (xxx-DXE)가있는 프로젝트 그룹을 만듭니다. 모든 것을 다해라. 그러면 모든 것이 잘된다. BPL, DCP 및 DCU 형식의 라이브러리 패키지를 모두 내 라이브러리 경로에 배치하고 install the design-time package into the IDE using the registry을 배포합니다. 그런 다음 라이브러리 경로가 환경 설정에 추가됩니다. 델파이를 열면 (이것은 D7과 XE에서 마찬가지입니다) 'XXXX-DXE 패키지를로드 할 수 없습니다. 라이브러리 패키지 xxx-RXE.bpl을 찾을 수 없습니다. xxx-RXE.dcp를 'requires'에서 제거하고이를 직접 장치로 바꾸려면 디자인 타임 패키지를 수정하여 속임수를 쓴다면 모두 괜찮습니다.

나는 델파이 폴더에 무엇이든 파고 들지 않으려 고하므로 내 프로젝트 구조는 이와 같습니다 (XE 만 표시되며 D7은 비슷합니다). 패키지는 출력 단위 인 bpl 및 dcp를 ".. \ Library \ Delphi15"로 설정하고 모든 패키지에는 ".. \ Source"의 검색 경로가 주어지며 디자인 타임 패키지에는 ".. \ Library \ Delphi15 "(필요한 런타임 패키지를 찾으려면).

c:\Program Files\xxx\Library\Delphi15 

(DCP의 모든 BPL의 DCU의 포함 : 위의 폴더

\Root 
    \Packages 
    xxx.groupproj 
    xxx-RXE.dpk 
    xxx-DXE.dpk 
    \Library 
    \Delphi15 
     (output of all dcus, dcp's, bpl's etc. Manually added *.res, *.inc and *.dfm's).  
    \Source 
    (The original project source files as used by the packages). 

없음은, 내 설치 프로그램이 다음과 같은 배포 폴더를 생성 할 때까지 델파이 IDE와 함께 아무것도 할 해달라고 델파이에서 사용되지 않습니다 환경 라이브러리 경로에 넣은 경로이기도합니다).

그래서 내가 알지 못하는 것은 모든 파일이 그 폴더에있는 경로에있는 경우 왜 위선자 델파이가 그들을 볼 수 있습니까?

도움 주셔서 감사합니다.

답변

3

"XXXX-DXE 패키지를로드 할 수 없습니다. 라이브러리 패키지 xxx-RXE.bpl을 찾을 수 없습니다"라는 메시지가 뜨면 잘못된 메모리가 나타납니다. 일반적으로 DCP (및/또는 BPL?)가 포함 된 경로가 Windows 환경 변수 PATH에 포함되어 있지 않으면이 오류가 발생합니다.

설치된 패키지가 다른 패키지를 참조하면이 참조 된 패키지에 대한 일반적인 "Windows 라이브러리 검색 동작"이 시작됩니다 (Delphi 시작시). 현재로서는 델파이 경로 설정이 활성화되어 있지 않습니다.. 따라서 설치 프로그램은 PATH 환경 변수를 수정하거나 이미 포함 된 파일을 복사해야합니다.

+0

좋은 제안, 고마워. –

+0

그 덕분에 해결되었습니다. –

+0

당신은 환영합니다 :) –

2

저는 DCP가 Delphi의 DCP 폴더에 있어야한다는 것을 확신합니다. Delphi 2010 및 Windows 7이 설치된 컴퓨터에서는 C:\Users\Public\Documents\Rad Studio\7.0\Dcp입니다.

레지스트리를 검색 할 때이 경로는 인 HKCU\Software\Codegear\BDS\7.0\Library에 있습니다. 물론 $(BDSCOMMONDIR)\Dcp으로 문자열을 확장해야합니다.

나는 또한 BPL을 Delphi 기본 위치에 넣을 것이다. 다시 (나를 위해) C:\Users\Public\Documents\Rad Studio\7.0\Dcp이다.

+0

나는 그것을 시험해 보겠다, Nat. –

2

"라이브러리 패키지 xxx-RXE.bpl을 찾을 수 없습니다"는 오해의 소지가 있습니다. 나는 사실 어떤 이유로 든 LoadPackage이 실패했다고 생각합니다. 이는 Windows 경로에없는 종속 패키지로 인해 발생할 수 있습니다.

관련 문제