探究VisualStudio⽣成的.vs⽂件夹内部结构和作⽤
在某个契机的引发下,对VS解决⽅案中⾃动⽣成的.vs⽂件夹产⽣了兴趣,以前总对这个⽂件夹不怎么上⼼,最近正好遇到点情况来搞
懂.vs⽬录究竟有什么作⽤。
这⾥直接先将我摸索出的结果贴出来,⽂章后⾯会⼀⼀详细说明和分析:.vs⽬录是⽤来存储当前⽤户在解决⽅案中的⼯作配置,具体包括VS关闭前最后的窗⼝布局、最后打开的选项卡/操作记录/⽂件⽂档、某些⾃定义配置/开发环境、调试断点等这类设置信息和状态。这样每当⽤户关闭解决⽅案后再重新打开,就能继续之前的⼯作状态。
mysql下载的vs库放在那个文件里在VS2015之前的版本,这些信息都是散乱的保存在解决⽅案根⽬录下(最明显的参照物就是.suo⽂件),现在是将这些统⼀放在.vs这个隐藏⽂件夹⾥,如果没在Windows系统中开启查看隐藏的⽂件和⽂件夹,还是很容易⽆视的。
通常来说如果团队有使⽤源代码版本管理系统,这个⽂件夹都是要加⼊忽略规则的,毕竟没必要同步每个⼈的使⽤习惯和当前⼯作进度。⽽且.vs⽬录本⾝具有临时性,就算删除后也完全不影响解决⽅案的启动和运⾏,反正vs也会⾃动重新⽣成,只是之前的⼯作配置及记录没有了,也就是相当于第⼀次打开这个项⽬。
这⾥先随便新建⼀个ASP.NET MVC项⽬以作为案例(最好能先⽣成下),我是⽤VS2017新建的项⽬,VS2015应该也是可以,⽼版本VS 则不会出现这个⽂件夹。打开解决⽅案所在⽬录,先查看.vs的内部结构:
.vs⽬录下只有两个⽂件夹,其中config⽂件夹⾥⾯只保存了⼀个fig⽂件,这个⽐较容易理解,就是IIS Express的配置⽂件,如
果项⽬不是ASP.NET项⽬则没有这个⽂件夹,其他的项⽬类型或多或少也会有类似特定的⽂件:
另外⼀个⽂件夹名称是根据当前项⽬的解决⽅案名称来的,这⾥因为是随便新建的项⽬所以名称是WebApplication1(VS中ASP.NET项⽬默认的命名格式),此⽂件夹下⽬前只有⼀个vs15⽂件夹,这⾥要注意15是Visual Studio 2017的版本号,我们平常说的VS2017是产品名称!这点算是⽼⽣常谈的知识点了,对应的VS2015版本号为14,以此类推。也就是说如果当前解决⽅案有⽤其他版本的VS打开,这⾥就会⽣成对应版本的⽂件夹:
继续查看vs15⽬录,⾥⾯分别有.suo⽂件和⼀个sqlite3⽂件夹:
.suo⽂件也是⽼朋友了,如果不明⽩的朋友可以⽹上搜索下,可以参考下这篇⽂章:。总的来说就是记录⽤户在当前解决⽅案中设置的断点、书签之类的信息。
最后讲下sqlite3⽂件夹,看到名字就想起了SQLite数据库(版本3的),⽂件夹⾥⾯只有⼀个storage.ide⽂件,也不知道是⼲嘛的,⽹上搜索了会也没到什么相关资料,只能⾃⼰⿎捣⿎捣。⼀开始⽤⽂本打开后发现是乱码,想了想虽然⽂件是.ide的后缀,但说不定其实就是⼀个SQLite数据库⽂件,结果⽤SQLite数据库打开⼀看还真的是!
PS:SQLite是⼀个嵌⼊式数据库,如果对它不熟悉还是建议到官⽹或⽹上资料了解下。
先在SQLite的命令⾏⼯具中连接数据库(storage.ide⽂件),这⾥我为了⽅便操作便将项⽬的storage.ide⽂件直接复制到命令⾏⼯具的根⽬录下。接下来查询下数据库中有哪些表,⼀共有DocumentData1,ProjectData1,SolutionData1,StringInfo1这四张表:
PS:截图中的.table命令是查询当前数据库的表,.header on命令是开启列名称,.mode column是设置显⽰模式为列模式,这⾥稍微提下,是SQLite命令⾏⼯具的语法。
先看下这4张表查询出的数据截图:
SolutionData1表的数据⽐较长会导致排版错乱,特意切换了显⽰模式:
贴下storage.ide⾥⾯表的结构截图:
恩,总体上来说,除了⼀些blob数据类型(⼆进制⼤对象)的字段,其他的要么我看不懂,要么就是和解决⽅案有关的数据,就是这样,不想继续探索下去了,感觉已经超出我的能⼒范围了:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论