기능 확장 문제 해결

사용자 지정 코드 분석 규칙, 데이터베이스 단위 테스트 조건, 데이터 생성기, 리팩터링 형식, 빌드 참가자 및 배포 참가자와 같은 기능 확장을 직접 만들 수 있습니다. 이러한 기능 확장을 설치할 때 문제가 발생하여 확장이 올바르게 로드되지 않을 수 있습니다. 이 항목에서는 가장 일반적인 문제와 이러한 문제를 해결하기 위해 수행할 수 있는 단계에 대해 설명합니다. 기능 확장을 설치 및 등록하는 방법에 대한 자세한 내용은 방법: 기능 확장 등록 및 관리를 참조하십시오.

기능 확장이 로드되지 않을 때의 첫 번째 단계

기능 확장을 설치하고 등록한 후에는 Visual Studio를 다시 시작해야 합니다. Visual Studio를 다시 시작한 후 수행해야 할 첫 번째 단계는 오류 목록을 표시하는 것입니다. 하나 이상의 확장을 로드할 수 없으면 오류 목록에 오류가 표시됩니다. 보기 메뉴에서 오류 목록을 클릭합니다. 다음과 같은 오류가 나타나면 확장이 제대로 로드되지 않은 것입니다.

Failed to load extension MyBuildContributor.ModelStatisticsReport. Exception message: Could not load type 'MyBuildContributor.ModelStatisticsReport' from assembly 'MyBuildContributor, Version 1.0.0.0, Culture=neutral, PublicKeyToken=34fdfd7e8ae7c7a8'.

.extensions.xml 파일을 찾을 수 없는 경우와 같은 일부 경우에는 확장이 로드되지 않지만 오류가 표시되지는 않습니다.

확장을 로드하지 못하는 원인 진단

확장을 로드하지 못하는 원인에는 다음이 포함됩니다.

  • 확장 파일에 하나 이상의 오류가 있는 경우

  • 확장 어셈블리가 서명되지 않은 경우

  • extensions.xml 파일을 찾을 수 없는 경우

  • 확장 어셈블리를 찾을 수 없는 경우

  • 확장의 코드가 올바른 클래스를 확장하지 않는 경우

  • 확장의 클래스 또는 멤버에 올바른 특성이 없는 경우

확장 파일에 하나 이상의 오류가 있는 경우

확장이 로드되지 않는 가장 일반적인 원인으로는 Extensions.XML 파일에 다음과 같은 오류가 하나 이상 있는 경우를 들 수 있습니다.

  • 형식 이름이 올바르지 않음

  • 어셈블리 이름이 올바르지 않음

  • 버전 번호가 올바르지 않음

  • 공개 키 토큰이 올바르지 않음

  • extensions.xml 파일을 작성하는 방법에 대한 자세한 내용은 방법: 기능 확장 등록 및 관리를 참조하십시오.

확장 어셈블리가 서명되지 않은 경우

서명되지 않은 확장 어셈블리는 Visual Studio에서 로드할 수 없습니다. 확장 어셈블리에 서명하려면 다음 단계를 수행합니다.

어셈블리를 서명하고 빌드하려면

  1. 확장 프로젝트가 포함된 솔루션을 엽니다.

  2. 프로젝트 메뉴에서 MyExtensionProject 속성을 클릭합니다. 여기서 MyExtensionProject는 서명할 기능 확장이 포함된 프로젝트의 이름입니다.

  3. 서명 탭을 클릭합니다.

  4. 어셈블리 서명을 클릭합니다.

  5. 강력한 이름 키 파일 선택에서 **<새로 만들기>**를 클릭합니다.

  6. 강력한 이름 키 만들기 대화 상자의 키 파일 이름에 MyRefKey를 입력합니다.

  7. (옵션) 강력한 이름 키 파일의 암호를 지정할 수 있습니다.

  8. 확인을 클릭합니다.

  9. 파일 메뉴에서 모두 저장을 클릭합니다.

  10. 빌드 메뉴에서 솔루션 빌드를 클릭합니다.

    다음에는 데이터베이스 프로젝트를 배포할 때 어셈블리가 로드되도록 어셈블리를 설치하고 등록해야 합니다.

extensions.xml 파일을 찾을 수 없는 경우

Visual Studio에 확장을 등록하기 위한 XML 파일을 제공하지 않은 경우 확장이 로드되지 않습니다. 일반적으로 MyAssembly.Extensions.XML 파일을 %Program Files%\Microsoft Visual Studio 10.0\VSTSDB\Extensions\MyExtensions 폴더에 복사해야 합니다. 여기서 MyAssembly는 확장의 이름입니다.

참고

XML 파일을 [Program Files]\Microsoft Visual Studio 10.0\VSTSDB\Extensions\MyExtensions 폴더에 바로 복사하지 않는 것이 좋습니다. 대신 하위 폴더를 사용하면 Visual Studio에서 제공된 다른 파일을 실수로 변경하는 것을 방지할 수 있습니다.

Extensions.XML 파일을 작성하는 방법에 대한 자세한 내용은 방법: 기능 확장 등록 및 관리를 참조하십시오.

확장 어셈블리를 찾을 수 없는 경우

Extensions 폴더에 확장 어셈블리를 복사하지 않은 경우 확장이 로드되지 않습니다. 일반적으로 MyAssembly.dll 및 MyAssembly.pdb 파일을 %Program Files%\Microsoft Visual Studio 10.0\VSTSDB\Extensions\MyExtensions 폴더에 복사해야 합니다. 여기서 MyAssembly는 확장의 이름입니다.

참고

XML 파일을 [Program Files]\Microsoft Visual Studio 10.0\VSTSDB\Extensions\MyExtensions 폴더에 바로 복사하지 않는 것이 좋습니다. 대신 하위 폴더를 사용하면 Visual Studio Premium에서 제공된 다른 파일을 실수로 변경하는 것을 방지할 수 있습니다.

확장의 코드가 올바른 클래스를 확장하지 않는 경우

기능 확장의 각 형식에 대해 주 클래스가 특정 기본 클래스를 확장합니다. 올바른 기본 클래스에서 상속하지 않으면 확장이 제대로 작동하지 않습니다. 자세한 내용은 해당 연습을 참조하십시오.

확장의 클래스 또는 멤버에 올바른 특성이 없는 경우

기능 확장의 각 형식에 대해 해당 확장과 호환되는 데이터베이스 스키마 공급자의 형식을 선언하는 특성이 클래스에 있어야 합니다. 또한 일부 확장의 경우에는 하나 이상의 클래스 메서드에 추가 특성이 있어야 합니다. 자세한 내용은 해당 연습을 참조하십시오.

참고 항목

개념

사용자 지정 데이터베이스 리팩터링 형식 또는 대상 만들기

데이터베이스 코드를 분석하기 위한 추가 규칙 만들기 및 등록

사용자 지정 데이터 생성기를 통해 특수 테스트 데이터 생성

데이터베이스 단위 테스트의 사용자 지정 조건 정의

기타 리소스

빌드 및 배포 참가자를 사용하여 데이터베이스 빌드 및 배포 사용자 지정