프라이빗 어셈블리 정보
프라이빗 어셈블리는 애플리케이션과 함께 배포되는 어셈블리이며 해당 애플리케이션을 단독으로 사용할 수 있습니다. 즉, 다른 애플리케이션은 프라이빗 어셈블리를 공유하지 않습니다. 프라이빗 어셈블리는 격리된 애플리케이션을 만드는 데 사용할 수 있는 메서드 중 하나입니다. 자세한 내용은 격리된 애플리케이션 및 Side-by-Side 어셈블리 정보를 참조하세요.
프라이빗 어셈블리는 시스템의 다른 어셈블리 버전과 함께 작동하도록 설계되어야 합니다. 자세한 내용은 Side-by-Side 어셈블리 만들기에 대한 지침을 참조하세요.
프라이빗 어셈블리에는 어셈블리 매니페스트가 함께 있어야 합니다. Windows에서 프라이빗 어셈블리를 검색하는 방식을 수용하기 위해 DLL을 프라이빗 어셈블리로 패키징할 때 이름 제한이 적용됩니다. 프라이빗 어셈블리를 검색할 때 권장되는 방법은 DLL에 어셈블리 매니페스트를 리소스로 포함하는 것입니다. 이 경우 리소스 ID는 1이어야 하며 프라이빗 어셈블리의 이름은 DLL의 이름과 같을 수 있습니다. 예를 들어 DLL 이름이 MICROSOFT.WINDOWS.MYSAMPLE.DLL 경우 매니페스트의 assemblyIdentity 요소에 사용되는 name 특성 값도 Microsoft.Windows.mysample일 수 있습니다. 프라이빗 어셈블리를 검색하는 다른 방법은 어셈블리 매니페스트를 별도의 파일에 제공하는 것입니다. 이 경우 어셈블리의 이름과 해당 매니페스트는 DLL의 이름과 달라야 합니다. 예를 들어 Microsoft.Windows.mysampleAsm, Microsoft.Windows.mysampleAsm.manifest 및 Microsoft.Windows.mysample.dll. 프라이빗 어셈블리를 나란히 검색하는 방법에 대한 자세한 내용은 어셈블리 검색 시퀀스를 참조하세요.
프라이빗 어셈블리는 애플리케이션 디렉터리 구조의 폴더에 설치됩니다. 일반적으로 애플리케이션의 실행 파일이 포함된 폴더입니다. 프라이빗 어셈블리는 애플리케이션과 동일한 폴더, 어셈블리와 이름이 같은 폴더 또는 어셈블리와 이름이 같은 언어별 하위 폴더에 배포할 수 있습니다. 예를 들어 다음 디렉터리 구조 중 하나를 사용하여 언어가 지정되지 않은 프라이빗 어셈블리 Microsoft.tools.pop을 배포합니다.
디렉터리 구조 | 설명 |
---|---|
APPDIR\MICROSOFT.TOOLS.POP.DLL | 매니페스트는 DLL에서 리소스로 배포됩니다. |
Appdir\Microsoft.Tools.Pop.MANIFEST | 매니페스트는 별도의 파일로 배포됩니다. |
APPDIR\MICROSOFT.TOOLS.POP\MICROSOFT.TOOLS.POP.DLL | 매니페스트는 어셈블리 이름이 있는 하위 폴더에 있는 DLL에서 리소스로 배포됩니다. |
Appdir\Microsoft.Tools.Pop\Microsoft.Tools.Pop.MANIFEST | 매니페스트는 어셈블리 이름이 있는 하위 폴더에 별도의 파일로 배포됩니다. |
중요
Windows 7 및 Windows Server 2008 R2 이전 버전의 Windows 운영 체제의 경우 애플리케이션의 실행 파일이 포함된 폴더에 네이티브 프라이빗 어셈블리를 배포해야 합니다. 언어별 폴더 또는 어셈블리와 이름이 같은 폴더의 설치는 네이티브 프라이빗 어셈블리에 대해 지원되지 않습니다.
다음 디렉터리 구조 중 하나를 사용하여 지정된 언어로 프라이빗 어셈블리 Microsoft.tools.pop을 배포합니다. 다음 예제에서 Microsoft.Tools.Pop에서 사용하는 언어는 영어(미국)이며 언어 코드는 en-us입니다. 어셈블리에 대한 올바른 DHTML 언어 코드를 대체해야 합니다.
appdir\en-us\Microsoft.tools.pop.DLL
appdir\en-us\Microsoft.tools.pop.MANIFEST
appdir\en-us\Microsoft.tools.pop\Microsoft.tools.pop.DLL
appdir\en-us\Microsoft.tools.pop\Microsoft.tools.pop.MANIFEST
프라이빗 어셈블리는 xcopy 명령과 같이 어셈블리의 파일을 이 폴더에 복사할 수 있는 모든 설치 방법으로 설치할 수 있습니다. Windows Installer를 사용하여 프라이빗 어셈블리를 설치하는 방법에 대한 자세한 내용은 Win32 어셈블리 설치를 참조하세요.
프라이빗 어셈블리는 Windows XP 이전의 운영 체제에도 설치할 수 있습니다. 이 경우 어셈블리를 등록해야 하며 이러한 운영 체제에서는 매니페스트가 사용되지 않습니다. 프라이빗 어셈블리의 복사본은 애플리케이션을 단독으로 사용하기 위해 프라이빗 폴더에 설치됩니다. 어셈블리의 다른 버전은 시스템에 전역적으로 등록될 수 있으며, 어셈블리에 바인딩되는 모든 애플리케이션에서 사용할 수 있습니다. 어셈블리의 전역 버전은 애플리케이션과 함께 설치된 버전이거나 이전 버전일 수 있습니다. 자세한 내용은 Windows의 DLL/COM 리디렉션을 참조하세요. 어셈블리를 여러 애플리케이션에서 사용할 공유 어셈블리로 설치할 수도 있습니다. 자세한 내용은 공유 어셈블리를 참조하세요.
프라이빗 어셈블리를 만드는 단계는 다음 두 가지 예외를 제외하고 공유 어셈블리를 만드는 단계와 동일합니다.
- 프라이빗 어셈블리를 서명할 필요가 없으며 어셈블리 매니페스트의 assemblyIdentity 요소에는 publickeyToken이 필요하지 않습니다.
- 프라이빗 어셈블리는 설치 기술을 사용하여 애플리케이션의 폴더에 설치할 수 있습니다. Windows Installer를 사용하여 프라이빗 어셈블리를 설치할 필요가 없습니다.