다음을 통해 공유


연습: 관리되는 위성 DLL 만들기

위성 DLL은 아이콘, 비트맵 및 리소스 문자열 등의 리소스 파일을 중앙 위치에 저장하여 추가 기능 및 기타 자동화 프로젝트에 사용하는 데 유용합니다. 위성 DLL은 다른 프로젝트나 추가 기능에서 다시 사용할 수 있습니다. 뿐만 아니라 추가 기능에서 문자열 및 기타 리소스를 분리하면 중앙화된 변경을 적용하거나 리소스를 여러 언어로 지역화하기가 쉬워집니다.

이전 버전의 Visual Studio에서는 SatelliteDllPath 및 SatelliteDllName에 레지스트리 항목을 사용했습니다. 그러나 이제 레지스트리 항목이 .addin 등록 파일의 항목으로 대체되었습니다. 프로젝트에 리소스가 필요한 경우 추가 기능을 로드하면 Visual Studio에서 위성 DLL을 쿼리합니다. 따라서 리소스 경로를 하드 코딩할 필요가 없습니다. 또한 #id 메서드를 사용하여 리소스 ID를 지정하는 대신 @resource name(resource name은 @Icon1 또는 @String1 같은 리소스 이름)을 사용합니다. @ 기호를 사용하면 Visual Studio는 위성 DLL에서 리소스를 찾습니다.

관리되는 위성 DLL 만들기

다음 단계에서는 아이콘과 문자열 리소스를 포함하는 위성 DLL을 만드는 방법 및 추가 기능을 수정하여 이러한 리소스에 액세스하는 방법을 보여 줍니다. 여기에서는 아이콘 및 문자열 리소스가 필요한 정보 대화 상자가 있는 추가 기능을 사용합니다. 일반적으로 정보 대화 상자가 있는 추가 기능을 만들면 기본 아이콘 및 텍스트가 제공됩니다. 다음 단계에서는 기본 아이콘 및 텍스트를 사용자 고유의 아이콘 및 텍스트로 바꾸는 방법도 보여 줍니다.

관리되는 위성 DLL을 만들려면

  1. 파일 메뉴에서 새로 만들기를 클릭한 다음 프로젝트를 클릭합니다.

  2. 새 프로젝트 대화 상자에서 기타 프로젝트 형식을 확장한 다음 확장성 프로젝트를 선택합니다.

  3. 템플릿 창에서 Visual Studio 추가 기능을 선택합니다.

  4. Visual Studio 추가 기능 마법사의 지시에 따릅니다. '도움말' 정보 선택 페이지에서 **예, 추가 기능에 '정보' 상자를 제공합니다.**를 선택합니다. 나머지 기본 선택은 그대로 사용합니다.

  5. 프로젝트 메뉴에서 참조 추가를 클릭합니다.

  6. .NET 탭에서 System.Drawing을 클릭한 다음 확인을 클릭합니다.

  7. 솔루션 탐색기에서 추가 기능 프로젝트를 마우스 오른쪽 단추로 클릭하고 추가를 클릭한 다음 새 항목을 클릭합니다.

  8. 템플릿 목록에서 리소스 파일을 선택하고 추가를 클릭합니다. 기본 이름(Resources1.resx)을 사용합니다.

    기본적으로 Resource1.resx라는 리소스 파일이 만들어지고 Visual Studio 리소스 편집기가 시작됩니다.

  9. Resource1.resx에서 문자열 목록의 아이콘(맨 위에서 가장 왼쪽 단추)을 선택합니다.

  10. 리소스 추가 목록에서 새 아이콘 추가를 클릭합니다. 지금은 기본 이름(Icon1.bmp)을 그대로 두고 추가를 클릭합니다.

    또는 아이콘에 크기가 16 x 16픽셀이고 16색 또는 트루 컬러인 기존 비트맵 이미지를 선택할 수도 있습니다.

  11. 아이콘 편집기에 아이콘이 열리면 도구를 사용하여 수정합니다. 작업이 끝나면 아이콘 편집기를 닫고 변경 내용을 저장합니다.

  12. 리소스 추가 목록에서 새 문자열 추가를 선택합니다.

  13. 이름 열의 첫 번째 상자를 클릭합니다.

    이렇게 하면 String1이라는 기본 문자열 리소스가 만들어집니다.

  14. 상자에 첫째 줄을 입력합니다.

    이는 첫 번째 문자열 리소스의 값입니다.

  15. 문자열 리소스를 두 개 더 만들고 이름을 "둘째 줄"과 "셋째 줄"로 지정합니다.

  16. 리소스 편집기를 닫고 변경 내용을 저장합니다.

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

  18. 속성 창에서 포함 리소스빌드 작업없음으로 변경합니다.

    이렇게 하면 리소스가 추가 기능 어셈블리에 포함되어 빌드되지 않습니다.

  19. 프로젝트를 빌드합니다.

  20. 위성 리소스 DLL을 만듭니다. 이는 ResGen을 사용한 다음 AL(어셈블리 링커)을 사용하여 위성 DLL을 만드는 두 단계 과정으로 수행됩니다.

    1. 시작을 클릭하고 모든 프로그램을 클릭한 다음 Microsoft Visual Studio 2010, Visual Studio Tools, **Microsoft Visual Studio 명령 프롬프트(2010)**를 차례로 클릭합니다.

      이렇게 하면 특정 환경 변수가 설정되므로 Visual Studio 도구를 보다 손쉽게 참조할 수 있습니다.

    2. 명령 프롬프트에서 .resx 파일이 있는 폴더로 이동하고 Resgen Resource1.resx를 입력합니다.

      Resgen은 지정한 .resx 파일을 .resources 파일로 컴파일하는 유틸리티입니다. 자세한 내용은 Resgen.exe(리소스 파일 생성기)를 참조하십시오.

    3. 명령 프롬프트에 AL.exe /embed:Resource1.resources /culture:en-US /out:Add-In Name.resources.dll을 입력합니다.

      추가 기능의 이름을 사용하여 Add-In Name을 바꿉니다. 예를 들어, 추가 기능 프로젝트의 이름이 MyAddin인 경우 /out: 스위치는 /out:MyAddin.resources.dll이 됩니다. /out: 이름은 프로젝트 이름과 일치해야 하며, 그렇지 않을 경우 리소스 DLL을 찾지 못하게 됩니다.

      Al.exe(어셈블리 링커)는 지정한 .resources 파일을 사용자가 추가 기능에서 참조할 수 있는 DLL로 변환합니다. /culture 스위치를 영어가 아닌 언어로 변경할 수 있습니다. 자세한 내용은 Al.exe(어셈블리 링커)를 참조하십시오.

  21. Windows 탐색기에서 추가 기능의 DLL 디렉터리로 이동하고 영어(미국)의 경우 AL.exe의 문화권 값으로 en-US를 입력했으므로 \en-US\라는 폴더를 만듭니다.

  22. Add-In Name.resources.dll 파일을 새 \en-US\ 폴더로 복사합니다.

  23. Windows 탐색기에서 \Addins\ 디렉터리로 이동합니다. 일반적으로 .. \Documents and Settings\user name\My Documents\Visual Studio 2010\Addins\입니다.

  24. 다음 작업을 수행하여 Visual Studio 추가 기능 정의 파일을 수정합니다.

    1. 추가 기능의 추가 기능 정의 파일을 마우스 오른쪽 단추로 클릭하고 연결 프로그램을 클릭한 다음 메모장을 클릭합니다.

    2. 다음 태그를 바꿉니다.

          <FriendlyName>@String1</FriendlyName>
          <Description>@String2</Description>
          <AboutBoxDetails>@String3</AboutBoxDetails>
          <AboutIconData>@Icon1</AboutIconData>
      

      Friendlyname 항목은 추가 기능의 이름을 "첫째 줄"로 변경합니다. 이는 Resource1.resx 파일에서 String1에 입력한 내용입니다. 이제 정보 대화 상자의 설명에는 "둘째 줄"이 있으며, AboutIconData 항목이 정보 대화 상자에 대해 만든 아이콘과 일치합니다.

    3. 어셈블리 이름의 확장명 앞에 .resources를 삽입합니다.

  25. 프로젝트를 다시 빌드하고 추가 기능 관리자에서 추가 기능을 선택합니다.

  26. 도움말 메뉴에서 Microsoft Visual Studio 정보를 클릭하고 목록에서 첫째 줄(추가 기능의 이름)을 선택합니다.

    만든 세 개의 문자열과 사용자 지정 아이콘이 표시됩니다.

참고 항목

작업

방법: 위성 DLL의 리소스에 액세스

개념

추가 기능 등록