Visual Studio中的.suo(Solution User Options)文件
其实关于.suo
文件,官方文档和网上很多资料就说明的十分详细了,本文主要按照我自己的理解将其整理归纳成一篇笔记以备日后查看。.suo
文件全称为:Solution User Options
,看了很多资料都翻译成解决方案用户选项。
建议英文好的朋友可以看这篇文章:Solution User Options (.Suo) File,我在MSDN上面也找到了一篇机翻的中文文档:解决方案用户选项 (。Suo) 文件,机翻虽然有点粗糙,但是还能将就的看下。
.suo文件是什么有啥用?
先讲下.suo
文件是干嘛的,官方文档里只是很简单的一句话就概括了:
这里直接套用机翻文档的解释:解决方案用户选项 (.suo) 文件包含每个用户的解决方案的选项(感觉说了等于没说,太笼统了)。我这边自己进行了归纳,总而言之.suo
主要是Visual Studio用来保存/记录以下这些信息或者说状态的文件:
- 用户在代码中插入的调试断点和跟踪点位置,包括它们的禁用/启用状态
- 添加的书签
- 设置的初始/默认启动项目
- 打开的选项卡列表,那些未关闭的文档和选项卡位置及排列顺序都会被记录下来。
- 项目卸载状态
所谓的解决方案用户选项就是包含了上面的这些东西!这里也只是列举出了一部分,只要是当前用户在解决方案中的自定义设置和工作状态/配置,都会保存在.suo
文件中。此外还需要注意不同版本的VS会有不同的情况,也就是说具体情况具体分析!
PS:注意.suo
是以二进制格式存储的文件,所以无法用常规手段直接查看,不要妄想用txt文本直接打开。
看完上面对.suo
文件的说明,大概就能明白这个文件的主要作用了。由于记录了用户当前的开发环境,因此每当重新打开Visual Studio的解决方案时,都能继续上一次的工作环境,以便用户快速的进入工作状态。
举个简单的例子,你打开VS,写着代码还唱着歌,突然就下班了(程序猿一般不加班的)。明早上班重新打开VS,由于保存了上一次的工作环境,比如最后打开的窗口,最后写的代码位置,最后加的断点书签等,你马上就进入了工作状态,岂不美哉。如果没有保存这些用户选项,可能要花费点时间回想昨天的工作进度。
关于.suo文件的一些注意事项
首先要明确一点,如果开发团队有使用源代码版本控制系统(例如SVN,GIT等),那么一般情况下.suo
都是要加入到忽略规则的。官方文档也有提到这个文件不应被添加到代码版本控制中,自己归纳的理由如下:
- 毕竟保存的内容都是针对当前用户的,本身也并不会对项目造成任何影响。
- 如果将
.suo
文件提交到版本控制系统中,反而会经常触发更改跟踪,开发人员需要一直处理冲突,因此很浪费时间和精力,基本上对团队开发来说没什么意义。 - 属于隐藏文件,众猿皆知大部分隐藏文件都是独立的或是与项目无关紧要的,应当被忽略。
关于删除.suo
文件的问题,一般就是想删就删,反正也没多大影响,顶多就是失去了当前的用户自定义设置。.suo
一般是VS自动生成的,初建项目就有,其他动作也会触发更新和创建,例如在VS中进行全部保存/生成操作,或者整个VS关闭时都会重新创建/更新这个文件,这点可以自己做个测试。
但是如果文件在整个VS项目关闭后删除,只有触发前面所说的情况才能被重新创建出来,这点要留意下。另外在VS2015之前的版本.suo
都是直接放在解决方案的根目录下,现在则移动到了..\[解决方案目录]\.vs\[解决方案名称]\vs15\v15
下。
Visual Studio中的.suo(Solution User Options)文件的更多相关文章
- 对 Visual Studio 中的Resharper禁用对某种文件的检测
原因:在Visual Studio中安装Reshaper后,就会对各种文件进行代码检测,但是因为Reshaper更新的速度不是很及时,所以有时会对Visual Studio中某些新功能误断,导致Cod ...
- Visual Studio中的一些较大的文件的作用
1.sdf 这些是工程中的中间,用于预编译等作用,最终可执行文件是不需要的,默认情况下,删除后重新编译还会生成.如果不需要,在Visual Studio里进入如下设置: 进入"Tools & ...
- 去除 Visual Studio 中臃肿的 ipch 和 sdf 文件
使用VS2010建立C++解决方案时,会生成SolutionName.sdf和一个叫做ipch的文件夹,这两个文件再加上*.pch等文件使得工程变得非常的庞大,一个简单的程序都会占用几十M的硬盘容量, ...
- 如何在 Visual Studio 中使用 Git 同步代码到 CodePlex
开源社区不管在国内还是国外都很火热,微软也曾因为没有开源而倍受指责,但是随着 .Net framework.ASP.Net MVC等框架的逐渐开源,也让大家看到了微软开源的步伐.CodePlex 则是 ...
- Visual Studio 中 Build 和 Rebuild 的区别
因为之前写的程序比较小,编译起来比较快,所以一直都没有太在意 Build 和 Rebuild 之间的区别,后来发现两个还是有很大不同. Build 只针对在上次编译之后更改过的文件进行编译,在项目比较 ...
- 在Chrome+Visual Studio中调试asp.net程序很慢的问题(Firefox也有类似问题)
在Chrome+Visual Studio中调试asp.net程序很慢的问题(Firefox也有类似问题) 今天开始起在Chrome中调试,发现问题主要出在菜单栏(layout文件)中,google了 ...
- [转]如何在 Visual Studio 中使用 Git 同步代码到 CodePlex
本文转自:http://www.cnblogs.com/stg609/p/3673782.html 开源社区不管在国内还是国外都很火热,微软也曾因为没有开源而倍受指责,但是随着 .Net framew ...
- Visual Studio 中 Tab 转换为空格的设置
Visual Studio 中 Tab 转换为空格的设置 在 Visual Studio 中写代码时,按 Tab 键,会自动进行缩进.有时希望实现按 Tab 键,出现多个空格的效果.Visual St ...
- Visual Studio中开发
如何在Visual Studio中开发自己的代码生成器插件 Visual Studio是美国微软公司开发的一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具.代 ...
随机推荐
- 【转】shell速查表
shell速查表 转自:https://www.jianshu.com/p/a98a334bfb25 1. 变量 #!/bin/bash msg="hello world" ech ...
- 使用 ffmpeg nginx rtmp 搭建实时流处理平台
环境: ubuntu 16.04 问题引入: 使用 opencv 获取摄像头数据帧, 进行处理之后(如进行 keypoint 识别), 将 opencv 中图像的 Mat类型转化为 ffmpeg 的 ...
- 解决ubuntu的gedit编辑器中文乱码的问题
hello,本人 sky 又和大家见面了很多人在使用ubuntu系统时发现打开windows系统下面写的文档的话会发现乱码,是因为编码格式的问题windows系统下面是用GB2312等编码格式进行中文 ...
- linux添加swap分区【转】
概述 添加交换分区主要是因为安装oracle时碰到交换分区太小时无法安装的情况,这时候就需要添加交换分区了. 操作简介 增加swap分区方法: 1.新建磁盘分区作为swap分区 2.用文件作为swap ...
- 华为交换机有关BGP的相关配置
作者:邓聪聪 上图是本人在某公司任职期间的一次割接任务,在原有的路由器上新配置的另一台高性能的路由器,两台设备为并行 割接要求: 1:原有的网络结构无变化,并行新设备 2:原有设备下的所有用户无变化 ...
- 最全的libcurl库资源整理
C++ 用libcurl库进行http 网络通讯编程 百度登陆协议分析!!!用libcurl来模拟百度登陆 C++使用libcurl做HttpClient 使用libcurl库进行HTTP的下载 li ...
- Java常见异常及解释
- hibernate框架学习第六天:QBC、分页查询、投影、数据加载策略、二级缓存
QBC查询 1.简单查询 Criteria c = s.createCriteria(TeacherModel.class); 2.获取查询结果 多条:list 单挑:uniqueResult 3.分 ...
- [IOI2000] 邮局
## 非常神仙的 wqs 二分优化dp,又学了一招. 首先我们需要先想到一个人类智慧版的前缀和优化. # part 1:violence 然鹅在前缀和优化之前我们先考虑暴力做法:我们可以枚举 i . ...
- Mudo C++网络库第六章学习笔记
muduo网络库简介 高级语言(Java, Python等)的Sockects库并没有对Sockects API提供更高层的封装, 直接用它编写程序很容易掉到陷阱中: 网络库的价值还在于能方便地处理并 ...