一般的VS项目目录结构为:

  • 解决方案(solution)名字

    • xx.sln 配置文件

      • 工程名字1

        • xx.vcxproj 配置文件
        • xx.vcxproj.user 配置文件
        • xx.vcxproj.filters 配置文件
      • 工程名字2
        • xx.vcxproj 配置文件
        • xx.vcxproj.user 配置文件
        • xx.vcxproj.filters 配置文件

在visual studio2017中,同一个解决方案(solution)下面有多个工程项目(project)。所以,.sln配置文件的作用范围是整个解决方案。.vcxproj配置文件、.vcxproj.user配置文件和.vcxproj.filters配置文件的作用范围是其所在的工程项目中。vcxproj配置文件保存了整个项目的配置信息。对vcxproj字面上的理解是,vc表示visual studio,proj表示project,x表示2010年之后的vc版本。2010之前的版本用vcproj表示。知道了它们的作用范围之后,现在就可以很清楚地知道,如果我们的项目中只有一个工程,那么我们可以不需要sln文件,在windows上面双击vcxproj文件就可以打开。

  • xx.vcxproj.user 配置文件配置文件表示用户在使用VC的时候根据个人操作习惯所保存的配置信息,比如用户点击“显示所有文件”的按钮,对应的配置会保存在这个文件中。目的是保存用户对VC的操作习惯。

  • .vcxproj.filters:当建立一个虚拟目录的时候,配置的值保存在这里。如果你的VS是英文版的,就会发现建立一个虚拟目录叫“Add Filter”。

一般情况下,如果我们要把源码共享到github中,只需要提交工程相关的配置文件,不提交用户个人偏好相关的配置文件。所谓的个人偏好相关,是指根据用户个人的VS使用习惯而保存的配置信息,比如选择了查看所有文件选项,打开了某一个文件。而工程相关的配置是指工程建立相关的信息,不受用户偏好的影响,比如解决方案的名字是什么,这个解决方案下面有哪些project。所以,我们只需要上传sln配置文件、vcxproj和vcxproj.filters配置文件就可以了,当然还包括源码。

另外几个常见的文件:

  • ipch目录内的文件和.sdf文件是visual studio用来保存预编译的头文件和Intellisense用的,删除这些文件对于工程开发完全没有影响。
  • .opensdf看名字就差不多知道意思了,好像只有打开工程的时候才会出现,关闭就会消失,估计是sdf的临时文件。
  • .suo(solution user option)解决方案用户选项,记录所有将与解决方案建立关联的选项,存储了用户对界面的自定义配置,包括布局、断点、打开的文件等。以便下一次你打开Visual Studio可以恢复这些设置,一般为隐藏文件;不提交到github.

在Debug和Release目录下,还有一些文件。

  • .exe可执行文件

  • .exp导出库文件的文件,只有dll工程才有,包含了导出函数和数据项信息。链接工具使用这类文件来创建动态链接库。

  • .def告知编辑器不要以microsoft编译器的方式处理函数名,而以制定的某方式编译导出函数,这样可以避免由于VC++编辑器的独特处理方式引起的链接错误。

  • .ilk增量编译(incremental linking),取消增量编译可以不生成这种文件,对于大工程来说可能会变慢。

  • .pdb帮助软件调试的文件

  • .manifest文件为了解决不同的程序调用相同名称的但是不同版本的dll产生的问题。


参考了:
https://blog.csdn.net/u012175089/article/details/55050617
https://blog.csdn.net/xu_fengyu/article/details/81841877

结束!谢谢

Visual Studio 2017工程项目的几个重要文件解析相关推荐

  1. Visual Studio 2017 “无法查找或打开PDB文件“ 解决方法

    运行的时候提示无法查找或打开PDB文件 解决办法(注意:必须使用管理员身份运行VS) 第一步 打开调试窗口的选项 第二步 调试-->常规-->勾选启用源服务器支持 它会弹出警告窗口,点&q ...

  2. Visual Studio 2017【使用ASP.NET开发Web项目】第一课——初识ASP.NET,创建第一个ASP.NET程序

    知识点:理解 ASP.NET 的概念和优势. 会创建 ASP.NET Web Form 程序. 理解 ASP.NET Web Form 程序的执行阶段. 会使用代码内嵌和代码后置两种方式进行编码. 1 ...

  3. Visual Studio 2017十五项新功能体验

    Visual Studio 2017正式已经于2017.3.7号正式发布,选在这一天发布也是为了纪念Visual Studio 二十周年.MVP 2017技术峰会将于这个周末(3.17)在北京举办,由 ...

  4. Visual Studio 2017项目进行打包并附加.net框架打包,菜鸟级安装教程

    VS2017项目打包安装教程 一.准备工作 1.安装Installer(若已经安装,则直接进行下一步) 二.打包可执行程序 1.创建setup打包项目 2.编辑Application Folder 3 ...

  5. vs2015编译linux源码,使用Visual Studio 2017(VS2017)编译OpenCC 1.0.4 (Open Chinese Convert)源代码...

    摘要:本文介绍了Win7 64位环境下OpenCC(Open Chinese Convert) 1.0.4源码编译全过程,除VS2017外,VS2013以上版本也应该基本同样适用,其他版本的Windo ...

  6. Visual Studio 2017 - Windows应用程序打包成exe文件(1)- 工具简单总结

    最近有对一个Windows应用程序少许维护和修改.修改之后要发布新的exe安装文件,打包exe文件时,遇到了很头疼的问题,还好最后解决了,记录一下. Visual Studio版本:Visual St ...

  7. Visual Studio 2017新版发布,极大提高开发效率丨附下载

    2019独角兽企业重金招聘Python工程师标准>>> 最新的Visual Studio 2017免费下载[包含Professional.Enterprise.Community版本 ...

  8. Visual Studio 2017正式版发布全纪录

    2019独角兽企业重金招聘Python工程师标准>>> 又是一年发布季,微软借着Visual Studio品牌20周年之际,于美国太平洋时间2017年3月7日9点召开发布会议,宣布正 ...

  9. Visual Studio 2017 第三方依赖设置,附加依赖项和附加库目录

    Visual Studio 2017 第三方依赖.需要做的事情有:1.指定头文件所在目录.2.指定需要使用到的lib.3.指定lib文件夹,也就是代码的实现部分所在的目录. 附加依赖项 是指输入项,如 ...

最新文章

  1. Windows Phone 7的启动器和选择器
  2. AOJ0033 Ball【贪心+序列处理】
  3. 关于边缘计算,那些不边缘的“术”与“道”
  4. java安全编码指南之:Mutability可变性
  5. 走近Flex组件系列(三):按扭组件(Button,CheckBox,LinkBar,LinkButton,PopUpButton,RadioButton,ToggleButtonBar)...
  6. 记住要重置线程上下文类加载器
  7. qt linux 添加库文件路径,linux下qt使用第三方库的那些事
  8. 一起谈.NET技术,WPF 基础到企业应用系列5——WPF千年轮回2
  9. 可以接收数量不定的参数的函数
  10. mac显示隐藏文件夹
  11. Example文件简介
  12. meanshift聚类算法跟踪原理
  13. 如何用光盘映像文件重装服务器系统,光盘镜像文件怎么安装|教你安装光盘镜像方法...
  14. 解决error while accessing a target resource. resource is perhaps not available or a wrong access was
  15. 动软代码生成器基础使用
  16. Emotion Expression With Fact Transfer for Video Description基于事实传递的视频描述情感表达
  17. cad lisp 两侧偏移并删除_cad lisp 两侧偏移并删除_CAD中级进阶必备,这10个技巧让你轻松再升一级...
  18. win10/neovim中文输入法切换
  19. 混乱与秩序2服务器维护,混沌与秩序2救赎世界BOSS刷新位置时间大全
  20. Android产品研发(八)--App数据统计

热门文章

  1. 微信小程序爬虫python_爬虫爬取微信小程序
  2. python怎么输出文本_python输出语句怎么用
  3. Underscore _.template 方法使用详解
  4. android图片素材參考
  5. Eclipse导入Maven项目出现错误:Unsupported IClasspathEntry kind=4
  6. apache log4j-1.2.15的使用
  7. POJ 3046 Ant Counting(递推,和号优化)
  8. ebuild 中的软件包依赖
  9. android 实现全屏代码
  10. 《Delphi 算法与数据结构》学习与感悟[3]: 获取一个字节中非空位的个数