Publicize를 사용하여 전용 접근자 만들기
명령줄 도구인 publicize.exe는 공용 형식이 들어 있는 어셈블리를 생성합니다. 이러한 공용 형식은 모든 전용 형식을 두 번째 어셈블리에 래핑합니다. Publicize를 사용하면 전용 형식을 대상으로 하는 단위 테스트를 손쉽게 만들 수 있습니다.
이 도구에서 생성된 어셈블리를 전용 접근자라고도 합니다. IDE에서 전용 접근자를 생성할 수도 있지만 자동화, 스크립팅 및 빌드 시나리오에서는 publicize.exe를 대신 사용할 수 있습니다.
참고
Visual Studio 2010에서는 접근자를 사용하지 않으며 이후 버전의 Visual Studio에도 접근자를 포함하지 않습니다.
Publicize에서는 대리자 또는 이벤트를 지원하지 않음
테스트하려는 어셈블리에 다양한 종류의 개인 또는 내부 형식이 들어 있을 수 있습니다. publicize.exe를 실행하고 해당 어셈블리의 이름을 전달하면 이 도구는 해당 어셈블리에 대한 전용 접근자를 생성합니다. 생성된 전용 접근자에는 테스트 코드에서 어셈블리의 전용 형식에 액세스할 수 있게 해 주는 코드가 들어 있습니다. 그러나 이 접근자를 통해 전용 또는 내부 대리자나 이벤트에 액세스할 수는 없습니다.
Publicize.exe 도구 사용
publicize.exe를 사용하려면 먼저 Visual Studio 2010 명령 프롬프트를 엽니다. 이렇게 하려면 시작, 모든 프로그램을 차례로 클릭하고 Microsoft Visual Studio 10.0, Visual Studio Tools를 차례로 가리킨 다음 Visual Studio 2010 명령 프롬프트를 클릭합니다. publicize.exe에는 다음 구문을 사용합니다.
Publicize.exe [options] input-assembly
이 명령은 input-assembly 어셈블리에 있는 모든 전용 형식을 래핑합니다.
옵션
이 명령에는 /target, /delaysign 및 /keyfile 옵션이 있습니다. 다음 단원에서는 이러한 옵션에 대해 설명합니다.
/target
구문: Publicize.exe /target:[value] input-assembly
/target 옵션을 사용하면 생성된 어셈블리가 특정 플랫폼에서 실행되도록 빌드됩니다. /target에 사용할 수 있는 값은 다음과 같습니다.
Desktop: 표준 CLR 전용 접근자를 생성합니다. Desktop은 target: 옵션의 기본값입니다.
WebSite: 웹 사이트와 호환되는 전용 접근자를 생성합니다.
참고
Visual Studio의 파일 메뉴에서 웹 사이트를 선택하여 만든 웹 사이트의 코드를 테스트할 때만 WebSite 옵션을 사용해야 합니다.
/delaysign
구문: Publicize.exe /delaysign input-assembly
현재 시간에 어셈블리에 서명하지 않으려는 경우 /delaysign 옵션을 사용합니다. 이후에 디지털 서명을 추가할 수 있는 공간이 출력 어셈블리에 예약됩니다.
/delaysign을 사용하면 publicize.exe를 실행한 후 테스트를 진행할 수 있습니다. 임시 공개 키 토큰이 사용되며, 이후에 어셈블리에 서명할 수 있습니다.
/delaysign 옵션을 사용하는 경우 /keyfile 옵션도 사용해야 합니다. /keyfile 옵션과 함께 지정하는 파일에는 공개 키가 들어 있어야 하며, 개인 키도 포함될 수 있습니다.
/delaysign은 .NET 컴파일러 옵션이기도 합니다. 자세한 내용은 강력한 이름의 어셈블리 만들기 및 사용 및 어셈블리 서명 연기를 참조하십시오.
/keyfile
구문: Publicize.exe /keyfile<key file> input-assembly
/keyfile 옵션을 사용하여 publicize.exe를 실행할 때 어셈블리에 서명합니다. <key file> 항목을 사용하여 암호화 키가 들어 있는 기존 파일의 이름을 지정합니다. <key file> 항목에는 키 파일에 대한 절대 경로나 상대 경로가 포함될 수 있습니다.
/keyfile 옵션을 사용하는 경우 /delaysign 옵션을 함께 사용할 수도 있습니다. /delaysign을 함께 사용하지 않고 /keyfile을 사용하는 경우 /keyfile 옵션에 지정한 파일에 공개 키와 개인 키가 모두 들어 있어야 합니다.
/keyfile은 .NET 컴파일러 옵션이기도 합니다. 자세한 내용은 강력한 이름의 어셈블리 만들기 및 사용을 참조하십시오.
예제
다음 명령은 Myassembly.dll에 대한 표준 데스크톱 전용 접근자를 생성합니다.
Publicize.exe myassembly.dll
다음 명령은 MyWebSite라는 웹 사이트에 대한 전용 접근자를 생성합니다.
Publicize.exe /target:WebSite myassemby.dll
다음 명령은 강력한 이름의 어셈블리인 Myassembly.dll에 대한 표준 데스크톱 전용 접근자를 생성하지만 서명을 이후로 연기합니다.
Publicize.exe /delaysign /keyfile<FileWithPublicKey.snk> myassembly.dll