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

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

.suo文件是什么有啥用?

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

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

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

所谓的解决方案用户选项就是包含了上面的这些东西!这里也只是列举出了一部分,只要是当前用户在解决方案中的自定义设置和工作状态/配置,都会保存在.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下。

Visual Studio中的.suo(Solution User Options)文件的更多相关文章

  1. 对 Visual Studio 中的Resharper禁用对某种文件的检测

    原因:在Visual Studio中安装Reshaper后,就会对各种文件进行代码检测,但是因为Reshaper更新的速度不是很及时,所以有时会对Visual Studio中某些新功能误断,导致Cod ...

  2. Visual Studio中的一些较大的文件的作用

    1.sdf 这些是工程中的中间,用于预编译等作用,最终可执行文件是不需要的,默认情况下,删除后重新编译还会生成.如果不需要,在Visual Studio里进入如下设置: 进入"Tools & ...

  3. 去除 Visual Studio 中臃肿的 ipch 和 sdf 文件

    使用VS2010建立C++解决方案时,会生成SolutionName.sdf和一个叫做ipch的文件夹,这两个文件再加上*.pch等文件使得工程变得非常的庞大,一个简单的程序都会占用几十M的硬盘容量, ...

  4. 如何在 Visual Studio 中使用 Git 同步代码到 CodePlex

    开源社区不管在国内还是国外都很火热,微软也曾因为没有开源而倍受指责,但是随着 .Net framework.ASP.Net MVC等框架的逐渐开源,也让大家看到了微软开源的步伐.CodePlex 则是 ...

  5. Visual Studio 中 Build 和 Rebuild 的区别

    因为之前写的程序比较小,编译起来比较快,所以一直都没有太在意 Build 和 Rebuild 之间的区别,后来发现两个还是有很大不同. Build 只针对在上次编译之后更改过的文件进行编译,在项目比较 ...

  6. 在Chrome+Visual Studio中调试asp.net程序很慢的问题(Firefox也有类似问题)

    在Chrome+Visual Studio中调试asp.net程序很慢的问题(Firefox也有类似问题) 今天开始起在Chrome中调试,发现问题主要出在菜单栏(layout文件)中,google了 ...

  7. [转]如何在 Visual Studio 中使用 Git 同步代码到 CodePlex

    本文转自:http://www.cnblogs.com/stg609/p/3673782.html 开源社区不管在国内还是国外都很火热,微软也曾因为没有开源而倍受指责,但是随着 .Net framew ...

  8. Visual Studio 中 Tab 转换为空格的设置

    Visual Studio 中 Tab 转换为空格的设置 在 Visual Studio 中写代码时,按 Tab 键,会自动进行缩进.有时希望实现按 Tab 键,出现多个空格的效果.Visual St ...

  9. Visual Studio中开发

    如何在Visual Studio中开发自己的代码生成器插件    Visual Studio是美国微软公司开发的一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具.代 ...

随机推荐

  1. Shell命令和技巧

    监控命令(每2秒运行一次) watch "ls -larth" 使用一个端口杀死程序 sudo fuser -k 8000/tcp 限制以下命令的内存使用 ulimit -Sv 1 ...

  2. Tomcat 部署及配置

    下载,解压tomcat.jdk 1.解压,链接tomcat.jdk tar xf jdk-8u161-linux-x64.tar.gz .tar.gz .0_161/ /usr/local/ .0_1 ...

  3. python获取esxi的磁盘使用率信息

    #!/usr/bin/python3 #coding:utf-8 #Author: ziming """ 只用于模拟开发功能测试 """ f ...

  4. maven项目导入war包

    导入war包,使用war包中的类和静态资源(css,js,包含jsp等) A项目是被导入的war工程,B项目是需要A项目的一个工程. 在<build>中 <resources> ...

  5. PHP超精简文章管理系统 Summer Article

    2017年3月8日 21:18:43 星期三 git: https://git.oschina.net/myDcool/article.git 截图:

  6. Python2018-字符串中字符个数统计

    1 编写程序,完成以下要求: 统计字符串中,各个字符的个数 比如:"hello world" 字符串统计的结果为: h:1 e:1 l:3 o:2 d:1 r:1 w:1 prin ...

  7. Android apk动态加载机制

    参考链接:http://blog.csdn.net/singwhatiwanna/article/details/22597587

  8. Light Oj 1005

    题意: 从 n*n 的棋盘中放置 K 个 行和列不冲突的棋子 思路: 组合数学, 先选 k 个 行, k 个列, 就是 C(n,k) ^ 2; 然后 K 个棋子不相同, K ! 全排列 #includ ...

  9. Linux命令之chmod、chown

    一.chmod命令 chmod命令用于改变linux系统文件或目录的访问权限.用它控制文件或目录的访问权限.该命令有两种用法.一种是包含字母和操作符表达式的文字设定法:另一种是包含数字的数字设定法. ...

  10. scrapy 在迭代爬取时被拒 offsite 增加dont_filter=True