Visual Studio中的.suo(Solution User Options)文件

时间:2021-10-13 17:11:24

其实关于.suo文件,官方文档和网上很多资料就说明的十分详细了,本文主要按照我自己的理解将其整理归纳成一篇笔记以备日后查看。.suo文件全称为:Solution User Options,看了很多资料都翻译成解决方案用户选项。

建议英文好的朋友可以看这篇文章:Solution User Options (.Suo) File,我在MSDN上面也找到了一篇机翻的中文文档:解决方案用户选项 (。Suo) 文件,机翻虽然有点粗糙,但是还能将就的看下。

.suo文件是什么有啥用?

先讲下.suo文件是干嘛的,官方文档里只是很简单的一句话就概括了:

Visual Studio中的.suo(Solution User Options)文件

这里直接套用机翻文档的解释:解决方案用户选项 (.suo) 文件包含每个用户的解决方案的选项(感觉说了等于没说,太笼统了)。我这边自己进行了归纳,总而言之.suo主要是Visual Studio用来保存/记录以下这些信息或者说状态的文件:

  1. 用户在代码中插入的调试断点和跟踪点位置,包括它们的禁用/启用状态
  2. 添加的书签
  3. 设置的初始/默认启动项目
  4. 打开的选项卡列表,那些未关闭的文档和选项卡位置及排列顺序都会被记录下来。
  5. 项目卸载状态

Visual Studio中的.suo(Solution User Options)文件

所谓的解决方案用户选项就是包含了上面的这些东西!这里也只是列举出了一部分,只要是当前用户在解决方案中的自定义设置和工作状态/配置,都会保存在.suo文件中。此外还需要注意不同版本的VS会有不同的情况,也就是说具体情况具体分析!

PS:注意.suo是以二进制格式存储的文件,所以无法用常规手段直接查看,不要妄想用txt文本直接打开。

看完上面对.suo文件的说明,大概就能明白这个文件的主要作用了。由于记录了用户当前的开发环境,因此每当重新打开Visual Studio的解决方案时,都能继续上一次的工作环境,以便用户快速的进入工作状态。

举个简单的例子,你打开VS,写着代码还唱着歌,突然就下班了(程序猿一般不加班的)。明早上班重新打开VS,由于保存了上一次的工作环境,比如最后打开的窗口,最后写的代码位置,最后加的断点书签等,你马上就进入了工作状态,岂不美哉。如果没有保存这些用户选项,可能要花费点时间回想昨天的工作进度。

关于.suo文件的一些注意事项

首先要明确一点,如果开发团队有使用源代码版本控制系统(例如SVN,GIT等),那么一般情况下.suo都是要加入到忽略规则的。官方文档也有提到这个文件不应被添加到代码版本控制中,自己归纳的理由如下:

  1. 毕竟保存的内容都是针对当前用户的,本身也并不会对项目造成任何影响。
  2. 如果将.suo文件提交到版本控制系统中,反而会经常触发更改跟踪,开发人员需要一直处理冲突,因此很浪费时间和精力,基本上对团队开发来说没什么意义。
  3. 属于隐藏文件,众猿皆知大部分隐藏文件都是独立的或是与项目无关紧要的,应当被忽略。

关于删除.suo文件的问题,一般就是想删就删,反正也没多大影响,顶多就是失去了当前的用户自定义设置。.suo一般是VS自动生成的,初建项目就有,其他动作也会触发更新和创建,例如在VS中进行全部保存/生成操作,或者整个VS关闭时都会重新创建/更新这个文件,这点可以自己做个测试。

但是如果文件在整个VS项目关闭后删除,只有触发前面所说的情况才能被重新创建出来,这点要留意下。另外在VS2015之前的版本.suo都是直接放在解决方案的根目录下,现在则移动到了..\[解决方案目录]\.vs\[解决方案名称]\vs15\v15下。