참조는 단지 텍스트 파일 인 .VBP
파일에 저장됩니다. 주어진 참조는 파일의 정확히 한 줄을 차지합니다. 예를 들어
, 여기에 DAO 데이터베이스 구성 요소에 대한 참조 : 가장 중요한 정보는 GUID를 포함하는 경로 (의 왼쪽에 모든
Reference=*\G{00025E01-0000-0000-C000-000000000046}#5.0#0#C:\WINDOWS\SysWow64\dao360.dll#Microsoft DAO 3.6 Object Library
입니다 즉, 라이브러리의 고유 식별자 , 더 많거나 적음). 파일 스펙과 설명 텍스트는 VB6에서 참조 된 DLL에 대해 레지스트리에서 찾은 내용으로 업데이트하므로 중요하지 않습니다. 어떤 이유에서 결코 어쨌든 경로를 갖고있는 것 같다하지
Object={BDC217C8-ED16-11CD-956C-0000C04E4C0A}#1.1#0; tabctl32.ocx
:
참조하는 또 다른 형태는 같은 GUI 컨트롤을위한 것입니다. 대부분이 유형의 참조는 프로젝트에 의존하는 양식을 거의 손상시킬 수 있으므로 수정할 필요가 없습니다.
그래서 Powershell 스크립트에서 중요한 작업은 질문에 언급 된 개별 참조 행을 추가하거나 제거하는 것입니다. 바이너리 호환성의 형식을 사용하지 않는 한, GUID는 안정적으로 유지됩니다. 따라서 추가/제거해야 할 문자열을 본질적으로 하드 코드 할 수 있습니다.
이외에도이 접근 방식을 취해야하는 이유를 생각해 볼 가치가 있습니다. 일반적으로 VB6 솔루션을 구축하려면 참조를 추가/삭제하는 것이 필요하지 않습니다. 또한 배포 기술의 선택에 따라 참조를 안정적으로 유지하는 경향이있는 프로젝트 또는 이진 호환성을 사용하고있을 가능성이 큽니다.
마지막으로, 이미 VB6 프로젝트 그룹을 만드는 방법을 알고있는 Kinook's Visual Build Pro과 같은 기존 도구가 있으며 옵션과 같은 타사 도구를 사용하면 많은 작업을 줄일 수 있다고 언급 할 것입니다.
내가 코드를 공유 할 수는 없지만, Powershell을 사용하여 VB6 사전 처리를 수행했습니다. VB 코드가 종속 된 DLL을 추가하는 것은 잘못된 것입니다. 만약 내가 올바르게 기억한다면, 대부분 텍스트 파일 일 뿐이므로 – 4c74356b41
을 편집하고 컴파일하면됩니다. 좋은 지적입니다. 텍스트 파일입니다. – JustJohn