关于 Visual Studio 主题转换
上月初微软发布了“宇宙最强”集成开发环境 - Visual Studio 2022 正式版,新 IDE 引进了一系列的新功能,其中包括新的 UI 设计,支持新的主题选项,我们知道 Visual Studio Code 拥有海量的主题可供下载使用,截至当前时间, Visual Studio | Marketplace显示 Visual Studio Code 主题 的搜索结果有 六千多条记录,而 Visual Studio 2022 主题的搜索结果却仅有 59 条记录,如果 Visual Studio 也能拥有这么多的主题可供使用就再好不过了,不过,现在我们的愿景的确可以实现了,当前可以实现将 Visual Studio Code 主题转换为在 Visual Studio 中工作,下面就介绍该如何实现这项工作。
运行环境
要实现这项 Visual Studio 主题转换工作,我们需要使用到一个工具-Theme Converter for Visual Studio,这个工具的运行环境:
- Visual Studio Code
- Visual Studio 2022 预览版 3 以上
- 需要安装
.NET 5.0
以上 的运行环境
获取转换工具
有两种方式可以获取转换工具,
克隆原项目,自己编译
克隆项目:
1
git@github.com:microsoft/theme-converter-for-vs.git
进入项目目录:
.\ThemeConverter\ThemeConverter
,在 Visual Studio 或者 Visual Studio Code 中编译项目,也可以在当前目录启动终端执行编译命令:1
dotnet build ThemeConverter.csproj
编译成功后项目会输出到此目录:
.\ThemeConverter\ThemeConverter\bin\Debug\net5.0
直接下载我已经编译好的程序
开始转换
获取需要转换的主题 json 文件
- 启动 Visual Studio Code
- 在【扩展】中安装想要转换的主题
- 点击
Ctrl
+Shift
+P
,输入命令Developer: Generate Color Theme from current settings
后回车会自动打开一个json
格式文件,保存此 json 文件,比如:D:\MyTheme.json
,注意保存为json
文件,非jsonc
文件
执行转换,进入第 3 步中含有
ThemeConverter.exe
文件的程序目录,这里有两种情况转换主题到指定目标 Visual Studio
执行命令:
1
ThemeConverter.exe -i <path_to_theme_json> -t <target_vs_installation_path>
path_to_theme_json:第 4 步获取的主题 json 文件
target_vs_installation_path:本机 Visual Studio 安装路径
比如执行:
1
ThemeConverter.exe -i "D:\MyTheme.json" -t "C:\Program Files\Microsoft Visual Studio\2022\Professional"
执行命令成功后重启 Visual Studio,打开【工具】->【主题】,即可选择刚刚转换成功的主题。
转换主题后生成
.pkgdef
文件,该文件可以用来生成主题扩展包,继而发布和分享执行命令:
1
ThemeConverter.exe -i <path_to_theme_json> -o <output_path>
path_to_theme_json:第 4 步获取的主题 json 文件
output_path:
.pkgdef
文件输出路径
比如执行:
1
ThemeConverter.exe -i "D:\MyTheme.json" -o "D:\ConvertedTheme"
执行命令成功后即可在 “D:\ConvertedTheme” 目录看到
MyTheme.pkgdef
文件。
为新主题创建 VSIX 安装程序
VSIX 是 Visual Studio 扩展安装程序,可用来发布和分享。要开发 VSIX 扩展程序需要安装 VS SDK,在安装 Visual Studio 时请选择【其他工具集】下的【Visual Studio 扩展开发】工作负载即可。
在已安装好 SDK 环境的情况下,下面来创建 VSIX 主题扩展程序。
启动 Visual Studio,创建新项目,项目模板选择:
VSIX 项目
创建完成后,在项目名称中点击鼠标右键,选择【添加】->【已存在的项】,选择对话框中点击【全部】,然后选择上面制作的
MyTheme.pkgdef
文件添加
MyTheme.pkgdef
文件到项目中后,鼠标右键选择【属性】,【复制到输出目录】设置为“总是复制”,【包含到 VSIX】设置为“是”打开
source.extension.vsixmanifest
文件,这里可以修改主题名称、描述、语言、图标以及支持的 Visual Studio 版本等等信息。执行编译,编译成功后即可在 bin 输出目录查看到
MyTheme.vsix
文件。
卸载主题
打开 Visual Studio 主题目录:
C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Platform
删除需要卸载主题的
.pkgdef
文件打开目标 Visual Studio 的【开发者命令行工具】,执行命令:
1
devenv /updateConfiguration
重启 Visual Studio,可以看到主题选项中已经没有卸载的主题了