如何配置CMakePresets.json阻止Visual Studio同步vcpkg_installed目录?
解决Visual Studio远程同步时排除vcpkg_installed目录的正确配置
要让Visual Studio在通过rsync同步代码到远程系统时排除vcpkg_installed目录,你需要确保CMakePresets.json的配置结构正确,且显式包含所有需要排除的目录(包括默认项)。以下是正确的配置写法:
完整配置示例
在你的CMakePresets.json中,找到对应的远程构建preset,在其vendor字段下添加或修改microsoft.com/VisualStudioRemoteSettings/CMake/1.0的配置:
{ "version": 3, "configurePresets": [ { "name": "你的远程构建预设名称", "generator": "Ninja", // 或你使用的其他生成器 "binaryDir": "${sourceDir}/build", // 其他预设配置(如toolchain、cacheVariables等) "vendor": { "microsoft.com/VisualStudioRemoteSettings/CMake/1.0": { "copySourcesOptions": { "exclusionList": [ ".vs", ".git", "out", "build", "vcpkg_installed" ] } } } } ] }
关键注意事项
- 配置位置正确:必须将
copySourcesOptions放在对应远程构建preset的vendor字段下,而非全局配置或其他非远程preset中。 - 包含默认排除项:
exclusionList需要显式列出默认排除的.vs、.git、out、build目录,再加上vcpkg_installed——直接只写vcpkg_installed会覆盖默认列表,但Visual Studio可能会优先使用默认配置,导致自定义项不生效。 - 检查JSON语法:确保配置没有语法错误(如逗号缺失、括号不匹配),否则Visual Studio会忽略该配置。
- 生效方式:修改配置后,重新加载CMake项目,或重启Visual Studio确保配置被读取。
验证方法:查看Visual Studio输出窗口中的rsync命令,确认参数中包含--exclude=vcpkg_installed,即可说明配置生效。
内容的提问来源于stack exchange,提问作者David Partridge
相关产品推荐
相关产品推荐

