2010-02-10 5 views
5

추적에 기록하는 .NET DLL이 있습니다. 하지만 그것은 VB6 EXE에서 내 DLL을 호출하면 추적이 작동하지 않는 것 같습니다. 추적 구성을 사용하여 EXE 폴더에 myApp.config 파일을 만들었지 만 문제가 해결되지 않습니다.VB6에서로드 된 .NET DLL에서 추적이 작동하지 않습니다.

은 또한 코드에서 추적 개체를 만드는 시도했지만 작동하지 않습니다

Dim _traceSrc As TraceSource = New TraceSource("myTraceSorce") 
Dim flListener As FileLogTraceListener = New FileLogTraceListener("myFileLogTraceListener") 
Dim tSwitch As SourceSwitch = New SourceSwitch("mySwitch") 
tSwitch.Level = _logLevel 

나는 그것이 작동하는 .NET의 EXE에서 내 DLL을 호출하는 경우, 내가 응용 프로그램을 해달라고 경우에도 마찬가지입니다. 구성을 찾을 수없는 경우 코드에서 설정하기 때문에 EXE 폴더에 config.

답변

3

VB6 응용 프로그램이 MyApp.exe 인 경우 구성 파일은 MyApp.exe.config이어야합니다. (MyApp.config은 .NET Framework 버전 및 서비스 팩에 따라 때로는 작동하지 않습니다.)

설정 파일에서 설정이 작동합니다.

잘 작동하는 COM을 통해 VB6에서 실행중인 코드를 추적하고 있습니다.

또한 VB6 코드를 실행할 때 권한이 다른 경우가 있습니까?

마지막으로 VB6 IDE에서 VB6 응용 프로그램을 디버깅하는 경우 VB6.exe 폴더의 VB6.exe.config에 설정을 추가하고 변경 사항이 적용되도록 VB6을 다시 시작해야합니다.

-2

VB6에서 COM을 사용하여 관리되는 DLL을로드하는 것이 문제라고 생각합니다.

.NET 코드는 모든 COM Interop에 대해 단일 'shim'처리기를 사용하므로 .config 파일을로드하지 않습니다.

당신이 할 수있는 최선의 방법은 machine.config 파일에 무언가를 추가하는 것입니다. 그러나 대부분의 사람들은 그렇게하는 것을 좋아하지 않습니다.

코드에서 초기화 추적이 작동해야합니다. 관리되는 .EXE에서 추적 구성을 제거하고 디버거에서 코드 버전이 제대로 작동하는지 확인하십시오.

관련 문제