원래 오류가 발생한 첫 번째 컴퓨터에서 작업 한 후 동일한 오류 (두 번째 dev 컴퓨터의 레거시 VB6 코드에서 .NET 개체를 소비하지 못했습니다.)가 발생했습니다. .NET DLL을 컴파일하고 등록한 것만으로도 모든 종류의 조합을 시도해 보았습니다. VS에 "Register for COM Interop"빌드 설정을 사용하거나 사용하지 않아도되었습니다. regasm.exe를 통해 수동으로 등록하고/codebase 매개 변수를 사용하거나 사용하지 않고이 작업을 시도하십시오. COM Visible 어셈블리 수준 특성을 설정하고 표시하지 않으려 고 시도했습니다 (억제 할 때 COM에서 소비해야하는 클래스의 특성을 설정 함). 그러나 아무 것도 효과가 없었고 계속 같은 오류가 발생했습니다.
밝혀졌습니다. DLL 출력을 .NET 4로 업그레이드했습니다.5는 두 번째 시스템에서, 원래는 .NET 2.0 어셈블리를 작성하는 반면. 내 프로젝트에는 .NET 2.0을 실행하는 타사 Interop DLL을 대상으로하는 몇 가지 참조가있었습니다. 이 참조를 업데이트하고 DLL을 다시 만들거나 .NET 2.0에서 실행되도록 다시 프로젝트를 설정하면 내 문제가 해결되었습니다./codebase (VS가 자동으로 수행함)를 사용할 때 응용 프로그램 디렉토리 나 \ syswow64에 DLL을 넣을 필요가 없음을 발견했습니다. 또한 MSDN 문서에서는/codebase를 사용할 때 어셈블리에 SN (강력한 이름)을 사용해야한다고 말하지만 사용자는 필요하지 않습니다. regasm.exe 명령 줄 도구에서 경고를받습니다.
요점은 COM Interop 관점에서 보면 대상 .NET Framework에 대한 종속성의 .NET 런타임 버전에주의해야합니다.
나는 c : \ temp에있는 어셈블리의 전체 경로에서 regasm을 사용했지만 여전히 동일한 오류가 발생했습니다. – ingt
그런 다음 가장 좋은 방법은 ProcessMonitor를 시작하는 것입니다 - http://technet.microsoft.com /ru-ru/sysinternals/bb896645.aspx - 정확히 어떤 파일이 없는지 살펴보십시오. 그것은 당신이 전혀 모르고있는 어떤 종속 어셈블리 일 수 있습니다. 확실히 알게되면 해결하기가 훨씬 쉬워 질 것입니다. – sharptooth
sharptooth,이 답변에 대해 * 매우 * 많이 감사합니다. 오늘 숨이 막혔어요! –