2011-08-31 3 views
0

더 이상 작동하지 않는 Windows 스크립트 파일이 있습니다.Windows 스크립팅에서 참조를 찾을 수 없습니다.

<job> 
    <reference object="Some.Component.1" /> 
    <script language="VBScript"> 

x = CreateObject("Some.Component.1") 
MsgBox TypeName(x) 

    </script> 
</job> 

같은 스크립트보기 나는에서 cscript으로 스크립트를 실행하는 경우 또는 나는 오류가 WScript와는

Windows 스크립트 호스트 :이 참조에 대한 형식 라이브러리를 찾을 수 없습니다 : 일부 .Component.1

오류 코드는 "유효하지 않은 색인"을 의미하는 0x80040068입니다. (.1 인덱스를 제거하려고 시도했지만 작동하지 않았습니다.)

이상한 점은 행 <reference object="Some.Component.1"/>을 제거하면 CreateObject 행이 작동하고 객체가 생성된다는 것입니다.

약 1 년 전에 스크립트가 작동했다는 것을 알고 있습니다. "Some.Component"라이브러리가 업데이트되었지만 CreateObject가 작동하기 때문에 잘못된 점이 전혀 없습니다.

같은 오류로 Server 2008 R2 (64 비트), Server 2003 (32 비트) 및 Windows 7 (64 비트)에서 스크립트를 테스트했습니다.

일부. 구성 요소는 32 비트입니다. 64 비트 머신의 경우, SysWow64 폴더에 cscript, wscript를 사용했습니다.

은 형식 라이브러리가 등록되지 않은

+0

이 버전 번호가 변경 될 수 있을까요? ProgID의 끝에서 (명시 적으로) 또는 명시 적 속성으로 지정할 수 있습니다. [[ ] (http://msdn.microsoft.com/en-us/library/479dafxb (v = VS.85) .aspx). –

+0

버전은 여전히 ​​1.0입니다. 명시 적으로 지정하려고 시도했지만 작동하지 않았습니다. – adrianm

답변

1

(I 구성 요소 내에서 열거에 액세스 할 수 <reference../> 필요). 이것은 등록 된 객체와는 다른 분리 된 것입니다. 일반적으로 컨트롤은 둘 다 수행합니다.

먼저 DLL을 등록 취소하고 다시 등록 해보십시오. 그래도 문제가 해결되지 않으면

regsvr32.exe /u c:\path\to\control.dll 
regsvr32.exe c:\path\to\control.dll 

직접 형식 라이브러리 (*.tlb)를 등록 RegTLib.exe를 사용해보십시오. 형식 라이브러리는 별도의 파일이 될 수 있습니다 또는 DLL에 내장 될 수 있음을

regtlib.exe c:\path\to\control.dll 

또는

regtlib.exe c:\path\to\control.tlb 

참고.

regTLib.exe에 대한 자세한 내용은 여기를 참조하십시오

+0

답장을 보내 주셔서 감사합니다. regsvr32를 테스트했지만 regtlib에 대해 알지 못했습니다. 그 이후로 직장을 바 꾸었습니다. 그래서 나는 그것을 시험 할 수 없습니다. 어쩌면 그것은 다른 사람을 돕기 위해 답으로 표시 할 수 있습니다. – adrianm

관련 문제