현재 VI의 경로 상수를 사용할 때 실행 파일에서 Error 7이 발생합니다.

업데이트 됨 Oct 19, 2023

해당 제품

소프트웨어

  • LabVIEW Application Builder Module

문의사항

현재 VI의 경로(Current VI's Path) 상수를 사용하고 상대 디렉토리에 액세스하기 위해 VI 이름을 제거했습니다. 개발 환경에서 작동하지만 VI를 실행 파일로 빌드 할 때 Error 7: 파일을 찾을 수 없습니다.를 포함한 몇 가지 문제 있습니다.

VI를 실행 파일로 배포 할 때 수정을 피하기 위해 VI를 어떻게 구현해야 합니까?

해결책

LabVIEW 2009 이후 버전에서는 어플리케이션 디렉토리 VI(Application Derectory.vi)를 사용할 수 있습니다.

독립 실행형 어플리케이션에서 이 VI를 호출하면, 이 VI는 독립 실행형 어플리케이션이 있는 폴더의 경로를 반환합니다. 이 VI를 개발 환경에서 호출하고 VI가 LabVIEW 프로젝트 파일(.lvproj)에 로드 된 경우, 이 VI는 프로젝트 파일이 있는 폴더의 경로를 반환합니다. 프로젝트가 저장되지 않으면, 이 VI는 <Not a Path>를 반환합니다. 최상위 VI가 프로젝트에 로드되지 않은 경우, VI는 최상위 레벨 VI를 포함하는 디렉토리로 경로를 반환합니다. VI가 디스크에 저장되지 않으면, 이 VI는 <Not a Path>를 반환합니다.

LabVIEW 2009 이전 버전에서는 어플리케이션 프로퍼티 노드를 사용하여 실행 중인 환경을 프로그래밍 방식으로 결정하고, 해당 경로를 경로 분리(Strip Path) 노드를 한 두번 사용하여 얻을 수 있습니다. 아래 스크린샷에서 이를 수행하는 방법을 볼 수 있습니다.

또 다른 옵션은 어플리케이션 디렉토리 프로퍼티 노드를 사용하여 실행 파일의 실행 디렉터리를 찾는 것입니다.

가장 왼쪽에 있는 VI는 VI Reference 여는 것이 아닌 Application Reference를 여는 것 입니다. 또한 이 프로퍼티는 실행 중인 LabVIEW 실행 파일을 검색하기 때문에 개발 중에 이 프로퍼티는 LabVIEW의 현재 인스턴스 경로를 반환합니다.

 

추가 정보

현재 VI의 경로 노드는 VI 이름을 포함한 전체 경로를 반환합니다. 이 경로는 VI가 LabVIEW 개발 환경에서 실행 되는지 또는 독립 실행형 어플리케이션에서 실행되는지에 따라 다릅니다. LabVIEW는 독립 실행형 어플리케이션과 관련된 모든 VI를 추가 레이어로 래핑합니다.

하드 드라이브의 루트 디렉토리(예 : C:\)에 있는 Application.vi라는 VI를 생각해보십시오. LabVIEW 개발 환경에서, 현재 VI의 경로 함수는 다음을 반환합니다 :

C:\Application.vi

이제 MyApplication.exe 라는 독립 실행형 어플리케이션에 내장된 동일한 VI를 고려해 보십시오. 현재 VI의 경로 함수는 다음을 반환합니다 :

C:\MyApplication.exe\Application.vi

위의 다른 파일 경로에서 볼 수 있듯이 개발 환경에서 실행 중인지 또는 독립 실행형 실행 파일에서 실행 중인지에 따라 경로를 다르게 제거해야 합니다.

이 문제에 대한 직접적인 접근 방법은 .exe 경로를 검색하는 것입니다. 경로가 전체 경로에 없는 경우, 경로 디렉토리를 얻으려면 경로를 한 번만 분리하면 됩니다. 경로에 있으면 경로를 두 번 분리하여 디렉토리를 리턴해야 합니다.