VSIX 색 컴파일러
Visual Studio 확장 색 컴파일러 도구는 기존 Visual Studio 테마의 색을 나타내는 .xml 파일을 가져와 Visual Studio에서 해당 색을 사용할 수 있도록 .pkgdef 파일로 변환하는 콘솔 애플리케이션입니다. .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 Name="name" GUID="guid">
<!-- one or more Category elements -->
</Theme>
Attribute | 정의 |
---|---|
이름 | [필수] 테마 이름 |
GUID | [필수] 테마의 GUID(GUID 서식과 일치해야 함) |
Visual Studio의 사용자 지정 색을 만들 때 다음 테마의 해당 색을 정의해야 합니다. 특정 테마의 색이 없으면 Visual Studio는 밝은 테마에서 누락된 색을 로드하려고 합니다.
테마 이름 | 테마 GUID |
---|---|
밝게 | {de3dbbcd-f642-433c-8353-8f1df4370aba} |
어둡게 | {1ded0138-47ce-435e-84ef-9ec1f439b749} |
파랑 | {a4d6a176-b948-4b29-8c66-53c97a1ed7d0} |
고대비 | {a4d6a176-b948-4b29-8c66-53c97a1ed7d0} |
범주
<범주> 요소는 테마의 색 컬렉션을 정의합니다. 범주 이름은 논리적 그룹화를 제공하며 가능한 한 좁게 정의되어야 합니다. 범주에는 <색> 요소가 최소 하나 이상 포함되어야 합니다. 범주 요소는 다음과 같이 정의됩니다.
<Category Name="name" GUID="guid">
<!-- one or more Color elements -->
</Category>
Attribute | 정의 |
---|---|
이름 | [필수] 범주 이름 |
GUID | [필수] 범주의 GUID(GUID 서식과 일치해야 함) |
색
<색> 요소는 구성 요소나 UI 상태의 색을 정의합니다. 색의 기본 명명 체계는 [UI 형식] [상태]입니다. "color" 단어는 중복되므로 사용하지 마세요. 색은 요소 형식과 상황 또는 색이 적용될 "상태"를 명확하게 나타내야 합니다. 색은 비어 있으면 안 되며 <배경> 및 <전경> 요소 중 하나 또는 둘 다를 포함해야 합니다. 색 요소는 다음과 같이 정의됩니다.
<Color Name="name">
<Background /> <!-- zero or one Background element -->
<Foreground /> <!-- zero or one Foreground element -->
</Color>
Attribute | 정의 |
---|---|
이름 | [필수] 색 이름 |
배경 및/또는 전경
<배경> 및 <전경> 요소는 UI 요소의 배경 또는 전경에 대한 색의 값과 형식을 정의합니다. 이러한 요소에는 자식이 없습니다.
<Background Type="type" Source="int" />
<Foreground Type="type" Source="int" />
Attribute | 정의 |
---|---|
Type | [필수] 속성 형식입니다. 다음 중 하나일 수 있습니다. 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 열거형에서 지원하는 모든 값은 형식 특성의 스키마에서 지원됩니다. 그러나 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 파일><선택적 인수>
인수
스위치 이름 | 참고 | 필수 또는 선택 |
---|---|---|
이름 없음(.xml 파일) | 이름 없는 첫 번째 매개 변수이며 변환할 XML 파일의 경로입니다. | Required |
이름 없음(.pkgdef 파일) | 두 번째 명명되지 않은 매개 변수이며 생성된 .pkgdef 파일의 출력 경로입니다. 기본값: <XML 파일 이름>.pkgdef |
선택 사항 |
/noLogo | 이 플래그를 설정하면 제품 및 저작권 정보가 인쇄되지 않습니다. | 선택 사항 |
/? | 도움말 정보를 출력합니다. | 선택 사항 |
/help | 도움말 정보를 출력합니다. | 선택 사항 |
예제
VsixColorCompiler D:\xml\colors.xml D:\pkgdef\colors.pkgdef
VsixColorCompiler D:\xml\colors.xml /noLogo
주의
이 도구를 사용하려면 최신 버전의 VC++ 런타임을 설치해야 합니다.
단일 파일만 지원됩니다. 폴더 경로를 통한 대량 변환은 지원되지 않습니다.
<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