初学VS的目录结构
工程目录下各文件的含义
一般大部分的文章可能介绍到上面就算结束了,但我这还没有。创建工程产生的各个文件都你知道是什么用的吗?
如果你是一个初学者,你可能会不知道(老手请跳过本文)。Ok,我就带你逐一了解吧。
解决方案与工程
在这之前先了解一个概念:解决方案与工程。
解决方案(Solution):一个大型项目的整体的工作环境;
工程 (Project):一个解决方案下的一个子工程;
在VS中,一个Solution可以有一个或多个Project。在我们创建一个工程时,如果没有指定Solution,VS会帮我们创建一个与工程名相同的Solution,这时一个Solution里只有一个Project。所有在我们的TestProject的文件目录结构中TestProject文件夹下还有一个TestProject文件夹(如图4),第一个就是整个Solution的目录,第二个才是Project的目录。
解决方案相关的文件:
TestProject.sln:
整个解决方案(Solution)的配制文件,组织多个工程和相关的元素到一个解决方案中。用鼠标双击它就能用VS打开整个工程项目。
TestProject.sdf:
浏览相关的数据库文件,它支持浏览和导航的特性。如跳转到方法、变量的声明,查找所有对象的所有被引用的地方,类视图等等。
TestProject.suo:
(solution user opertion) 解决方案用户选项,记录所有将与解决方案建立关联的选项, 以便在每次打开时,它都包含您所做的自定义设置.
TestProject.opensdf:
打开解决方案(Solution)时的临时文件,这个文件只有你的解决方案在VS打开的状态才会有,工程一关闭文件就被删除了。
工程相关的文件
TestProject.vcxproj:
记录工程(Project)相关的属性配制。
TestProject.vcxproj.filters:
文件过虑器,上图3“工程结构”中各个文件的组织和编排都是定义在这个文件中的。如果由于某种特殊的原因(如系统或VS突然崩溃)导致你打开工程时文件的组织结构是乱的,100%就是这个文件的原因。
TestProject.vcxproj.user:
用户相关的一些配制。
上面这些文件中有几个比较重要的一定不能删的文件是:
TestProject.sln、TestProject.vcxproj、TestProject.vcxproj.filters
不要问我是怎样知道这些文件的作用的,请看官方文档:
VS2010定义:https://msdn.microsoft.com/en-us/library/3awe4781.aspx.
VS2015定义:https://msdn.microsoft.com/en-us/library/vstudio/hx0cxhaw(v=vs.110).aspx
当然有一些说明是需要经过项目的实践才能理解的。