VSPackage 문제 해결
적용 대상: Visual Studio
이 문서에서는 VSPackages를 사용하여 일반적인 문제 및 문제 해결 팁을 소개합니다.
VSPackage는 Visual Studio가 시작되지 않도록 유지합니다.
이 시나리오에서는 명령 프롬프트에서 devenv.exe /safemode를 입력하여 안전 모드에서 Visual Studio를 시작합니다. 이 프로세스 중에는 Visual Studio에 포함된 VSPackage를 제외하고 VSPackage가 로드되지 않습니다.
VSPackage가 로드되지 않음
이 문제를 해결하려면 다음 단계 중 하나 이상을 시도합니다.
VSPackage가 실행되도록 등록된 레지스트리 루트(일반적으로 실험적 레지스트리 루트)를 사용하고 있는지 확인합니다. 자세한 내용은 실험적 인스턴스를 참조하세요.
VSPackage가 실험적 레지스트리 루트에서 실행되도록 대상인 경우 실험적 버전의 Visual Studio를 실행 중인지 확인합니다.
실험적 버전을 실행하려면 Visual Studio 명령 프롬프트를 연 다음 devenv /rootsuffix exp를 입력합니다.
VSPackage 레지스트리 항목을 확인합니다. 자세한 내용은 VSPackage 등록 및 VSPackage 관리를 참조하세요.
VSPackage를 로드하지 못하는 Visual Studio 인스턴스의 출력 창을 엽니다. VSPackage 로드가 실패하는 이유에 대한 정보가 해당 창에 표시될 수 있습니다.
참고 항목
Visual Studio IDE(통합 개발 환경)에서 실험적 버전의 Visual Studio를 시작하는 경우 두 버전의 출력 창을 검사합니다.
활동 로그를 검사합니다. 자세한 내용은 방법: 활동 로그 사용을 참조하세요.
IDE에서 throw된 예외에 대한 자세한 내용은 디버그 메뉴에서 예외를 선택하여 예외를 사용하도록 설정합니다. 예외 대화 상자에서 자세한 정보를 원하는 예외 유형을 선택합니다.
VSPackage가 등록되지 않음
VSPackage 어셈블리가 신뢰할 수 있는 위치에 있는지 확인합니다. RegPkg 는 기본 .NET 보안 구성의 네트워크 공유와 같이 신뢰할 수 없거나 부분적으로 신뢰할 수 있는 위치에 어셈블리를 등록할 수 없습니다. 사용자가 신뢰할 수 없는 위치에 프로젝트를 만들 때마다 경고가 표시되지만 이 메시지를 다시 표시 안 함 확인란을 선택하면 이 경고가 다시 발생하지 않을 수 있습니다.
명령이 표시되지 않거나 선택한 경우 오류가 발생합니다.
이 문제를 해결하려면 다음 단계를 수행합니다.
Visual Studio 명령 프롬프트에서 devenv /rootsuffix Exp /setup을 입력하여 IDE에 이미 있는 새 메뉴 명령 또는 변경된 메뉴 명령과 해당 명령을 병합합니다.
Visual Studio에서 VSPackage에 대한 UI.dll 찾을 수 있는지 확인합니다.
레지스트리의 패키지 섹션에서 VSPackage의 CLSID를 찾습니다.
HKLM\Software\Microsoft\Visual Studio\<version>\Packages
SatelliteDll 하위 키에서 지정한 경로가 올바른지 확인합니다.
VSPackage가 예기치 않게 동작합니다.
이 문제를 해결하려면 다음 단계 중 하나 이상을 시도합니다.
코드에 중단점을 설정합니다.
디버깅의 좋은 시작점은 생성자와 초기화 방법입니다. 메뉴 명령과 같이 평가하려는 영역에 중단점을 설정할 수도 있습니다. 중단점을 사용하려면 디버거에서 실행해야 합니다.
프로젝트 메뉴에서 속성을 선택합니다.
속성 페이지 대화 상자에서 디버그를 선택합니다.
명령줄 인수 상자에 VSPackage가 대상으로 하는 개발 환경의 루트 접미사를 입력합니다. 예를 들어 실험적 빌드를 선택하려면 /RootSuffix Exp를 입력합니다.
디버그 메뉴에서 디버깅 시작을 선택하거나 F5 키를 누릅니다.
참고 항목
프로젝트를 디버깅하는 경우 이제 프로젝트의 기존 인스턴스를 만들거나 로드합니다.
활동 로그를 사용합니다.
주요 지점에서 정보를 활동 로그에 기록하여 VSPackage 동작을 추적합니다. 이 기술은 특히 소매 환경에서 VSPackage를 실행하는 경우에 유용합니다. 자세한 내용은 방법: 활동 로그 사용을 참조하세요.
공용 기호를 사용합니다.
디버깅하는 동안 가독성을 높이기 위해 디버거에 기호를 연결할 수 있습니다.
- 도구/옵션 메뉴에서 디버깅/기호 대화 상자로 이동합니다.
- 기호 파일(.pdb) 위치를 추가합니다
https://msdl.microsoft.com/download/symbols
. - 성능을 향상시키려면 기호 캐시 폴더(예: C:\symbols)를 지정합니다.
VSPackage 또는 해당 종속성 중 하나가 없습니다.
관리 코드의 경우 참조 경로가 올바른지 확인합니다.
프로젝트 메뉴에서 속성을 선택합니다.
속성 페이지 대화 상자에서 참조 탭을 선택하고 모든 경로가 올바른지 확인합니다. 또는 개체 브라우저를 사용하여 참조된 개체를 찾아볼 수 있습니다.
관리 코드의 경우 Fuslogvw.exe(어셈블리 바인딩 로그 뷰어)를 사용하여 실패한 어셈블리 로드의 세부 정보를 표시할 수 있습니다.
비관리 코드의 경우 Visual Studio CLSID 레지스트리 노드에서 VSPackage의 CLSID를 찾습니다.
HKLM\Software\Microsoft\Visual Studio\<version>\CLSID
InprocServer32 항목에 VSPackage DLL의 올바른 경로가 있는지 확인합니다.