You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio 2022中CMakePresets.json等文件被默认内容覆盖问题

Visual Studio 2022中CMakePresets.json/CMakeUserPresets.json被自动覆盖的问题

问题描述

在Visual Studio 2022中编辑CMakePresets.json或CMakeUserPresets.json并保存后,文件会被默认内容自动覆盖;使用VS Code等其他编辑器修改时,更改可以正常保留,但一旦用VS2022打开该CMake工程,文件就会还原为修改前的状态。已在VS2022中设置优先使用CMakePresets.json(无此文件时才使用CMakeSettings.json)。

复现步骤

  • 打开Visual Studio 2022,导入一个无CMakePresets.json的CMake项目:VS会自动生成该文件,但关闭后重新打开项目,就无法再修改这个文件。
  • 在VS2022内修改CMakePresets.json或CMakeUserPresets.json。
  • 保存文件。
  • 观察到文件内容被默认配置覆盖。

即使关闭并重启Visual Studio 2022,该问题仍然存在。

环境信息

  • IDE:Visual Studio 2022 版本17.6.5
  • CMake版本:3.31.0
  • 操作系统:Windows 11

解决方案

1. 关闭VS2022的自动生成CMakePresets.json功能

打开VS2022的「工具」→「选项」→「CMake」→「常规」,取消勾选“自动生成CMakePresets.json”选项。该选项会在项目启动时自动覆盖现有预设文件。

2. 检查文件写入权限

右键点击CMakePresets.json或CMakeUserPresets.json,选择「属性」→「安全」,确认当前用户拥有写入权限。若VS以管理员身份运行,可能会导致普通用户权限下的修改无法保存。

3. 清理项目缓存

删除项目目录下的.vs、build、out等缓存文件夹,这些目录可能存储了旧的预设配置,导致VS打开时自动还原文件。清理后手动创建并编辑CMakePresets.json,避免VS自动生成默认内容。

4. 降级CMake版本

CMake 3.31.0属于较新版本,可能与VS2022 17.6.5存在兼容性问题。尝试降级到与VS版本匹配的稳定版本(如CMake 3.28.x或3.26.x)。

5. 自定义CMakeSettings.json指定预设

在项目根目录创建CMakeSettings.json,明确指定使用自定义预设,避免VS自动生成覆盖:

{
  "configurations": [
    {
      "name": "CustomPreset",
      "cmakePreset": "YourDefinedPresetName",
      "inheritEnvironments": ["msvc_x64"]
    }
  ]
}

内容的提问来源于stack exchange,提问作者Mehran Khazaeizadeh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 23:12:34