一般的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. 【Java基础】基本类型与运算
  2. 005_CSS通配符选择器
  3. [转载]js复制内容加版权声明代码
  4. python中的装饰器-(重复阅读)
  5. macosx 不允许无名信号量_个人对S12X的协处理器XGATE的信号量semaphore的理解
  6. 课下测试ch17ch18
  7. C# Cookies揭秘 [Asp.Net, Javascript]
  8. Hadoop 安装部署
  9. 学生用计算机如何解方程,学生党必备神器!一键解方程计算器App
  10. Windows设置固定IP
  11. 销售服务器账务处理,​销售货物和提供技术服务怎么做账
  12. SNS网店软文推广法
  13. upupoo服务器维护中是什么情况,upupoo用不了怎么办-解决upupoo打不开的方法 - 河东软件园...
  14. C# 固高Jog运动
  15. 装箱问题c语言函数,C语言基于贪心算法解决装箱问题的方法
  16. 干货 | 研发测试管理是测试能力的基础
  17. HGE source explor 0x0
  18. java 父类转子类失败_父类不能转换成子类
  19. java communal_java 打印 类似打印存折的打印。 | 学步园
  20. Qt/C++ 模仿 酷狗音乐播放器

热门文章

  1. mysql 查询商品列表 显示tag_javascript - MYSQL——怎么一个sql语句查询出用户和用户商品的列表啊...
  2. 怎么通过MQTT查看数据是否上云端_干货 | 设备快速上云,轻松搞定设备与云端通信...
  3. Java基础笔记(入门,语法基础,流程控制,数组)
  4. 随机顺序_SSD固态硬盘的顺序读写和随机读写区别,谁更重要?
  5. 未来的黑科技计算机作文简写,写一篇英文作文。“未来计算机的发展”
  6. 微软正式发布Azure Storage上的静态网站
  7. 信息互通联动防御 亚信安全翻开融合终端安全新篇章
  8. iOS 宏(define)与常量(const)的正确使用
  9. PHP文件上传主要代码讲解
  10. 局部敏感哈希算法的实现