다음을 통해 공유


어셈블리 계측 및 다시 서명

업데이트: 2007년 11월

어셈블리의 코드를 테스트하면서 코드 검사 정보를 수집해야 하는 경우 우선 해당 어셈블리를 계측해야 합니다. 계측 프로세스를 통해 코드 검사 정보를 생성하는 코드를 어셈블리에 추가하게 됩니다. 코드 검사를 위해 어셈블리를 계측하는 데 대한 자세한 내용은 방법: 코드 검사 데이터 가져오기를 참조하십시오.

그러나 강력한 이름으로 서명된 어셈블리를 테스트하는 경우 계측으로 인해 코드가 수정되어 서명이 무효화됩니다. 따라서 Visual Studio에서는 계측 단계 직후 어셈블리에 자동으로 다시 서명합니다.

참고:

테스트 실행 도중 발생하는 단계에 대한 자세한 내용은 테스트 배포 개요를 참조하십시오.

성공적으로 다시 서명하게 되면 테스트 실행이 정상적으로 완료되고 결과가 생성됩니다. 서명에 실패하면 다음과 같은 오류가 발생합니다.

Strong name verification failed for the instrumented assembly 'SignedLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1696e096eba75082'. Please ensure that the right key file for re-signing after instrumentation is specified in the test run configuration.

이 오류를 해결하려면 다음 작업을 수행하십시오.

  • 어셈블리 다시 서명. 어셈블리 서명에 사용된 키 파일이 있는 경우 Visual Studio에서 어셈블리에 자동으로 다시 서명할 수 있도록 이 파일을 제공할 수 있습니다.

  • 서명 확인 해제. 어셈블리를 테스트하는 컴퓨터에서 서명 확인 기능을 사용하지 않을 수 있습니다. 이 작업은 지정한 어셈블리에만 적용됩니다.

어셈블리 다시 서명

테스트 실행 구성 편집기의 코드 검사 페이지에서 계측 후 바이너리에 다시 서명하는 데 사용할 키 파일을 지정할 수 있습니다. 서명된 여러 어셈블리를 테스트하는 경우 Visual Studio에서는 지정한 키 파일을 사용하여 서명된 모든 강력한 이름의 어셈블리에 다시 서명합니다.

테스트 실행 구성 편집기에서 Visual Studio에서 강력한 이름의 어셈블리에 다시 서명하는 데 사용할 키 파일을 지정할 수 있습니다. 자세한 내용은 방법: 코드 검사 데이터 가져오기 항목에서 "어셈블리 다시 서명" 절차를 참조하십시오. 키 파일을 지정하면 테스트 실행 과정에 다시 서명 단계가 추가됩니다. Visual Studio에서는 지정한 키 파일을 사용하여 다시 서명해야 하는 어셈블리를 자동으로 결정합니다. 해당 키 파일을 사용하여 다시 서명할 수 있는 모든 어셈블리가 다시 서명됩니다.

참고:

어셈블리는 키 이름이 아닌 키 파일을 통해서만 다시 서명할 수 있습니다.

다음과 같은 경우에는 어셈블리가 다시 서명되지 않거나 불완전하게 서명됩니다.

  • 키 파일이 없으면 Visual Studio에서 어셈블리에 다시 서명할 수 없습니다. 이러한 경우 키 파일을 다시 생성한 다음 어셈블리에 다시 서명해 보십시오.

  • 키 파일이 암호로 보호된 경우 다시 서명할 수 없습니다.

  • 테스트 실행마다 키 파일이 하나만 지원됩니다. 예를 들어 테스트 실행에서 여러 어셈블리를 참조하는 경우를 가정해 봅니다. 이러한 어셈블리 중 일부는 키 파일 하나로 서명되었고 다른 어셈블리는 다른 키 파일로 서명되었습니다. 키 파일을 하나만 선택할 수 있으므로 다른 키 파일이 필요한 어셈블리는 다시 서명되지 않으며, 이러한 어셈블리에는 수동으로 다시 서명해야 합니다. 일부 어셈블리가 서명되지 않고 남아 있으면 테스트 실행 수준에서 오류가 발생합니다. 이러한 경우 서명 확인 해제의 설명에 따라 서명 확인을 해제할 수 있습니다.

서명 확인 해제

올바른 키 파일이 없는 등의 이유로 다시 서명할 수 없는 경우 해당 어셈블리에서 테스트를 실행하는 동안 서명 확인을 해제할 수 있습니다. 이렇게 하려면 다음과 같이 –Vr 옵션과 함께 강력한 이름 도구(Sn.exe)를 사용합니다.

SN -Vr <어셈블리 이름>

이렇게 하면 명령을 실행하는 컴퓨터에서 지정한 어셈블리에서만 강력한 이름 확인이 해제됩니다.

참고:

원격으로 테스트를 실행하면서 서명 확인을 해제해야 하는 경우 원격 컴퓨터에서 실행될 설정 및 정리 스크립트에 SN.exe 명령을 포함해야 합니다.

이렇게 하려면 충분한 권한이 있어야 합니다.

테스트 실행이 완료된 후 서명 확인을 다시 사용해야 합니다. 이렇게 하려면 다음과 같이 –Vu 옵션과 함께 SN.exe 명령을 사용합니다.

SN -Vu <어셈블리 이름>

서명 확인을 해제하거나 다시 사용할 때는 스크립트에서 SN.exe 명령을 사용하는 것이 좋습니다. 설정 스크립트에서 확인을 해제하고 정리 스크립트에서 확인을 다시 사용할 수 있습니다.

참고:

서명 확인을 다시 사용하는 것이 중요합니다. 서명 확인이 해제된 상태로 남아 있으면 보안 문제가 발생할 수 있습니다.

별도의 스크립트 파일에 SN 명령을 배치한 후 테스트 실행 구성 편집기의 설정 및 정리 스크립트 페이지에서 스크립트 파일을 지정합니다. 자세한 내용은 방법: 테스트 실행 구성 지정을 참조하십시오. 테스트 실행 도중 이러한 단계와 다른 단계가 발생하는 순서에 대한 자세한 내용은 테스트 배포 개요를 참조하십시오.

참고 항목

작업

방법: 테스트 실행 구성 지정

방법: 코드 검사 데이터 가져오기

방법: 강력한 이름으로 어셈블리 서명

개념

테스트 배포 개요

강력한 이름의 어셈블리

참조

강력한 이름 도구(Sn.exe)