CA2210: 어셈블리에는 올바른 강력한 이름을 사용해야 합니다.

항목
RuleId CA2210
범주 Microsoft.Design
주요 변경 내용 주요 변경 아님

원인

어셈블리가 강력한 이름으로 서명되지 않았거나, 강력한 이름을 확인할 수 없거나, 컴퓨터의 현재 레지스트리 설정이 없으면 강력한 이름이 유효하지 않습니다.

참고 항목

이 규칙은 더 이상 사용되지 않습니다. 자세한 내용은 사용되지 않는 규칙을 참조하세요.

규칙 설명

이 규칙은 어셈블리의 강력한 이름을 검색하고 확인합니다. 다음 중 하나에 해당하는 경우 위반이 발생합니다.

  • 어셈블리에 강력한 이름이 없습니다.

  • 어셈블리가 서명 후 변경되었습니다.

  • 어셈블리의 서명이 연기되었습니다.

  • 어셈블리가 잘못 서명되었거나 서명에 실패했습니다.

  • 어셈블리가 확인을 통과하려면 레지스트리 설정이 필요합니다. 예를 들어 강력한 이름 도구(Sn.exe)가 어셈블리 확인을 건너뛰는 데 사용되었습니다.

강력한 이름은 클라이언트에서 무단으로 변경된 어셈블리를 모르는 사이에 로드하지 못하도록 보호합니다. 강력한 이름이 없는 어셈블리는 극히 제한된 시나리오 이외에는 배포하면 안 됩니다. 제대로 서명되지 않은 어셈블리를 공유하거나 배포하면 어셈블리가 무단으로 변경되거나, 공용 언어 런타임에서 어셈블리를 로드할 수 없거나, 사용자가 자신의 컴퓨터에서 확인을 사용하지 못하게 될 수 있습니다. 강력한 이름이 없는 어셈블리의 단점은 다음과 같습니다.

  • 원본을 확인할 수 없습니다.

  • 어셈블리 내용이 변경된 경우 공용 언어 런타임에서 사용자에게 경고할 수 없습니다.

  • 전역 어셈블리 캐시에 로드할 수 없습니다.

서명이 연기된 어셈블리를 로드하고 분석하려면 어셈블리에 대해 확인을 사용하지 않도록 설정해야 합니다.

위반 문제를 해결하는 방법

키 파일 만들기

다음 절차 중 하나를 수행합니다.

Visual Studio에서 강력한 이름으로 어셈블리에 서명

  1. Visual Studio에서 솔루션을 엽니다.

  2. 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다.

  3. 서명 탭을 클릭하고 어셈블리 서명 확인란을 선택합니다.

  4. 강력한 이름 키 파일 선택에서 새로 만들기를 선택합니다.

    강력한 이름 키 만들기 창이 표시됩니다.

  5. 키 파일 이름에 강력한 이름 키의 이름을 입력합니다.

  6. 키를 암호로 보호할지 여부를 선택하고 확인을 클릭합니다.

  7. 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 빌드를 클릭합니다.

Visual Studio 외부에서 강력한 이름으로 어셈블리에 서명

강력한 이름 도구(Sn.exe)를 사용합니다.

경고를 표시하지 않는 경우

콘텐츠 변조가 문제가 되지 않는 환경에서 어셈블리를 사용하는 경우에만 이 규칙의 경고를 표시하지 않습니다.

참고 항목