Visual Studio 확장 색 컴파일러 도구는 기존 Visual Studio 테마의 색을 나타내는 .xml 파일을 가져와 .pkgdef 파일로 은밀하게 설정하여 Visual Studio에서 해당 색을 사용할 수 있도록 하는 콘솔 애플리케이션입니다. .xml 파일 간의 차이점을 쉽게 비교할 수 있으므로 이 도구는 소스 제어에서 사용자 지정 색을 관리하는 데 유용합니다. 빌드의 출력이 유효한 .pkgdef 파일이 되도록 빌드 환경에 연결할 수도 있습니다.
테마 XML 스키마
전체 테마 .xml 파일은 다음과 같습니다.
<Themes>
<!—one or Theme elements -->
<Theme>
<!-- one or more Category elements -->
<Category>
<!-- one or more Color elements -->
<Color>
<!-- zero or one Background element -->
<Background />
<!-- zero or one Foreground element -->
<Foreground />
</Color>
</Category>
</Theme>
</Themes>
테마
<Theme> 요소는 전체 테마를 정의합니다. 테마에는 하나 <이상의 Category> 요소가 포함되어야 합니다. 테마 요소는 다음과 같이 정의됩니다.
<Theme Name="name" GUID="guid">
<!-- one or more Category elements -->
</Theme>
| 속성 | 정의 |
|---|---|
| 이름 | [필수] 테마의 이름 |
| GUID | [필수] 테마의 GUID(GUID 서식과 일치해야 합니다). |
Visual Studio에 대한 사용자 지정 색을 만들 때 다음 테마에 대해 해당 색을 정의해야 합니다. 특정 테마에 대한 색이 없으면 Visual Studio는 밝은 테마에서 누락된 색을 로드하려고 시도합니다.
| 테마 이름 | 테마 GUID |
|---|---|
| Light | {de3dbbcd-f642-433c-8353-8f1df4370aba} |
| Dark | {1ded0138-47ce-435e-84ef-9ec1f439b749} |
| 파랑 | {a4d6a176-b948-4b29-8c66-53c97a1ed7d0} |
| 고대비 | {a4d6a176-b948-4b29-8c66-53c97a1ed7d0} |
| 테마 이름 | 테마 GUID |
|---|---|
| Light | {de3dbbcd-f642-433c-8353-8f1df4370aba} |
| Dark | {1ded0138-47ce-435e-84ef-9ec1f439b749} |
| 고대비 | {a4d6a176-b948-4b29-8c66-53c97a1ed7d0} |
범주
<Category> 요소는 테마의 색 컬렉션을 정의합니다. 범주에는 하나 <이상의 Color> 요소가 포함되어야 합니다. 범주 요소는 다음과 같이 정의됩니다.
<Category Name="name" GUID="guid">
<!-- one or more Color elements -->
</Category>
| 속성 | 정의 |
|---|---|
| 이름 | [필수] 범주의 이름 |
| GUID | [필수] 범주의 GUID(GUID 서식과 일치해야 합니다). |
범주 이름은 논리 그룹을 제공하며 가능한 한 좁게 정의해야 합니다.
:::moniker range>="vs-2026" 범주 이름은 상위 수준에서 유사한 범위에 사용할 수 있는 색에 대한 논리적 그룹화 기능을 제공합니다. Visual Studio 2026에서는 일관된 애플리케이션 및 중앙 집중식 업데이트를 용이하게 하기 위해 색 분류를 포함한 디자인 시스템이 간소화되었습니다. 예를 들어 Visual Studio 2026 테마에는 다음과 같은 범주가 있습니다. 색 Decorative 을 사용하여 차트 및 색이 지정한 탭과 같은 개체를 구분할 수 있습니다.
-
Shell 색은 Windows :::moniker-end와 유사한 일반적인 컨트롤 및 표면에 사용됩니다.
색상
<Color> 요소는 구성 요소 또는 UI 상태에 대한 색을 정의합니다. 색의 기본 명명 체계는 [UI 형식][상태]입니다. 중복되므로 "color"라는 단어를 사용하지 마세요. 색은 요소 형식과 상황 또는 색이 적용될 "상태"를 명확하게 나타내야 합니다. 색은 비어 있으면 안 되며 Background< 및 >Foreground< 요소 중 >하나 또는 둘 다를 포함해야 합니다. 색 요소는 다음과 같이 정의됩니다.
<Color> 요소는 UI 요소 형식에 대한 색을 정의합니다. 색에 대한 기본 명명 체계는 [Type][Part][Level]입니다. - Type 색이 UI에서 수행하는 최상위 역할(예: AccentBackground, , ControlText등)입니다. - Part 와 같은 FillStroke보다 세분화된 애플리케이션입니다.
-
Level는 램프에서 색의 상태 또는 단계(예: Default, DisabledPrimary, Secondary등)를 설명합니다. 중복되므로 "color"라는 단어를 사용하지 마세요. 일관성을 높이기 위해 유사한 컨트롤 및 상태에 색 토큰을 다시 사용할 수 있도록 특정 기능 대신 의도한 높은 수준의 사용에 집중합니다. 색은 요소 형식과 색이 적용될 상황을 명확하게 나타내야 합니다. 색은 비어 있으면 안 되며 Background< 및 >Foreground< 요소 중 >하나 또는 둘 다를 포함해야 합니다. 색 요소는 다음과 같이 정의됩니다.
<Color Name="name">
<Background /> <!-- zero or one Background element -->
<Foreground /> <!-- zero or one Foreground element -->
</Color>
| 속성 | 정의 |
|---|---|
| 이름 | [필수] 색의 이름입니다. |
배경 및/또는 전경
<배경> 및 <전경> 요소는 UI 요소의 배경 또는 전경에 대한 색 값과 형식을 정의합니다. 이러한 요소에는 자식이 없습니다.
<Background Type="type" Source="int" />
<Foreground Type="type" Source="int" />
| 속성 | 정의 |
|---|---|
| 유형 | [필수] 색의 형식입니다. 다음 중 하나일 수 있습니다. CT_INVALID: 색이 잘못되었거나 설정되지 않았습니다. CT_RAW: 원시 ARGB 값입니다. CT_COLORINDEX: 사용하지 마세요. CT_SYSCOLOR: SysColor의 Windows 시스템 색입니다. CT_VSCOLOR: __VSSYSCOLOREX Visual Studio 색입니다. CT_AUTOMATIC: 자동 색입니다. CT_TRACK_FOREGROUND: 사용하지 마세요. CT_TRACK_BACKGROUND: 사용하지 마세요. |
| 출처 | [필수] 16진수로 표시된 색의 값입니다. |
__VSCOLORTYPE 열거형에서 지원되는 모든 값은 Type 특성의 스키마에서 지원됩니다. 그러나 CT_RAW 및 CT_SYSCOLOR만 사용하는 것이 좋습니다.
모두 함께
다음은 유효한 테마 .xml 파일의 간단한 예입니다.
<Themes>
<Theme Name="Light" GUID="{de3dbbcd-f642-433c-8353-8f1df4370aba}">
<Category Name="MyCategory" GUID="{0A96238B-70CE-4479-9170-EECEAA3FCD58}">
<Color Name="MyActiveBorder">
<Background Type="CT_RAW" Source="FFCCCEDB" />
</Color>
</Category>
</Theme>
</Themes>
도구를 사용하는 방법
Syntax
VsixColorCompiler <XML 파일><PkgDef 파일><선택적 인수>
인수
| 스위치 이름 | Notes | 필수 또는 선택 사항 |
|---|---|---|
| 명명되지 않은 파일(.xml 파일) | 이 매개 변수는 이름 없는 첫 번째 매개 변수이며 변환할 XML 파일의 경로입니다. | 필수 |
| 명명되지 않은 파일(.pkgdef 파일) | 두 번째 명명되지 않은 매개 변수이며 생성된 .pkgdef 파일의 출력 경로입니다. 기본값: <XML Filename.pkgdef> |
선택적 |
| /noLogo | 이 플래그를 설정하면 제품 및 저작권 정보 인쇄가 중지됩니다. | 선택적 |
| /? | 도움말 정보를 출력합니다. | 선택적 |
| /help | 도움말 정보를 출력합니다. | 선택적 |
Examples
VsixColorCompiler D:\xml\colors.xml D:\pkgdef\colors.pkgdef
VsixColorCompiler D:\xml\colors.xml /noLogo
비고
이 도구를 사용하려면 최신 버전의 Microsoft Visual C++ 런타임을 설치해야 합니다.
단일 파일만 지원됩니다. 폴더 경로를 통한 대량 변환은 지원되지 않습니다.
도구는 다음에서 찾을 수 있습니다.
<VS Install Path>\VSSDK\VisualStudioIntegration\Tools\Bin\
샘플 출력
도구에서 생성된 .pkgdef 파일은 아래 키와 유사합니다.
[$RootKey$\Themes\{de3dbbcd-f642-433c-8353-8f1df4370aba}\Environment]
"Data"=hex:3a,00,00,00,0b,00,00,00,01,00,00,00,c3,d9,4e,62,fd,bd,fa,41,96,c3,7c,82,4e,a3,2e,3d,01,00,00,00,0c,00,00,00,41,63,74,69,76,65,42,6f,72,64,65,72,01,cc,ce,db,ff,01,33,31,24,ff
[$RootKey$\Themes\{de3dbbcd-f642-433c-8353-8f1df4370aba}\TreeView]
"Data"=hex:38,00,00,00,0b,00,00,00,01,00,00,00,8e,f0,ec,92,13,8b,f4,4c,99,e9,ae,26,92,38,21,85,01,00,00,00,0a,00,00,00,42,61,63,6b,67,72,6f,75,6e,64,01,f5,f5,f5,ff,01,1e,1e,1e,ff
Visual Studio 2026에서 작동하도록 테마 업데이트
Visual Studio 2022 이하에서 작동하는 기존 테마를 업데이트하여 Visual Studio 2026에서 작업할 수 있습니다. Visual Studio 2026으로 테마 마이그레이션을 참조하세요.