2013-10-16 2 views
0

이전 CruiseControl 기반의 빌드 서버에서 새 TeamCity로 마이그레이션하고 기존 VB6 기반 구성 요소에 문제가 발생했습니다.Native에 대해 vb6.exe 위치를 지정하는 방법

우리는 작업을 더 쉽게 만들고있는 Nant 스크립트를 사용하고 있지만 vb6 nant 작업으로로드 블록을 쳤습니다. 태그는 이제 인식되고 있지만 여전히 오류를 받고 있어요 그래서 나는

[Step 1/1] D:\TeamCity\buildAgent\work\d2bf2472d554430\VB6Web\VB6Web.build(157,8): 
'vb6' failed to start. 
[Step 1/1] Step VB6Web Build (NAnt) failed. 

내가이 오류 이해 ... nant.contrib.tasks를 설치 한 " 'VB6는'시작하지 못했습니다." 일반적으로 vb6.exe를 찾을 수 없다는 것을 의미하지만 스크립트에서이를 지정하는 방법을 볼 수 없습니다.

문서에 따르면 "exename"은 "외부 프로그램을 시작하는 데 사용해야하는 실행 파일의 이름"입니다. 그러나 "프레임 워크 구성 가능한 매개 변수"로 지정됩니다. 나는 그것을 속성으로 vb6 태그에 추가하려고했지만 예기치 않은 속성 오류가 발생했습니다.

어디서나 프레임 워크 구성 매개 변수로 vb6.exe 경로를 지정하는 방법에 대한 예제를 찾을 수없는 것 같습니다 ... 도움주세요.

답변

5

exename 매개 변수를 설정 (설정하지 않아도 됨) 할 필요가 없으면 NAnt 작업에서 VB 컴파일러를 찾습니다. exename 프레임 워크 구성 매개 변수는 실제로 작업이 상속하는 추상 클래스 ExternalProgramBase에 정의되어 있습니다.

vb6 작업에는 Visual Basic IDE가 설치되어 있으므로 vb6.exe을 사용할 수 있어야합니다. SOFTWARE\Microsoft\VisualStudio\6.0\Setup\Microsoft Visual Basic\ProductDir (refer the source code)을 찾아 보니 vb6.exe입니다.

이 컴퓨터가 새로운 빌드 시스템이고 NAnt Contrib와 같은 소프트웨어를 다시 설치한다고 표시 했으므로이 새 빌드 컴퓨터에 Visual Basic을 다시 설치하지 않은 것일 수 있습니다. 설치 한 경우 레지스트리 키를 확인하고 경로를 따라 레지스트리 키를 복구하려면 Visual Basic을 다시 설치해야 할 수도 있습니다.

+0

정보를 제공해 주셔서 감사합니다. 아침에 확인해야하지만, 적어도 이제는 설정 방법을 알 수없는 이유를 알았습니다 (!). VB6은 완전히 설치되었으며 문제의 프로젝트를 빌드하는 IDE를 통해 정상적으로 작동합니다 (다른 버전의 스튜디오와 마찬가지로). 제가 확인한 첫 번째 작업 중 하나였습니다. 키가 손상되었습니다. 그 외에도 단순히 exec 태그를 사용하여 스크립트를 변환하여 빌드를 직접 실행할 수 있는데 이는 내가 서버간에 너무 많이 변경하지 않기를 희망하면서 수치 스러울 것입니다. 감사의 말로 다시보고 드리겠습니다. – Mike

+0

VB6이 설치되어 있고 상자에서 작업 중이지만 그 reg. 열쇠는 존재하지 않기 때문에 내가 가지고있는 문제를 설명 할 수 있습니다. 도움 주셔서 감사합니다, 많이 주셔서 감사합니다. – Mike

+0

방금 ​​추가 할 내용 : 위의 키는 SOFTWARE \ Wow6432Node \ Microsoft \ VisualStudio \ 6.0 \ Setup \ Microsoft Visual Basic \ ProductDir \ 아래의 x64 시스템에 있습니다. nantcontrib 0.91과 0.92 사이의 동작을 비교하면 x64 시스템의 0.92는 Wow6432Node가 아닌 SOFTWARE \ Microsoft \ VisualStudio \ 6.0 \ Setup \ Microsoft Visual Basic \ ProductDir에서 읽는 것으로 나타납니다. Wow6432Node에서 x64 레지스트리 하이브로 복사하면 nantcontrib 0.92가 vb6.exe를 찾은 것으로 보입니다. (나는 nantcontrib의 버전이 나의 테스트에서 유일한 차이라고 믿는다.) – Zeinrich

관련 문제