上一篇介绍了VS默认的项目文件夹路径,但这种路径实际上是不适合大型项目的代码管理的,特别是需要用到云开发的时候。这一篇文章就介绍下,在开发大型项目的时候项目文件夹该怎么管理。

介绍下云开发模式,典型的就是GitHub和微软的Azure。简单来讲就是开发者上传他们的代码到这些服务器上,这种做法有下面几个好处:1.源码在云服务器更安全;2.进行代码的版本管理和分支管理;3.团队协作开发。其中2和3是硬需求。我们进行软件开发的时候,一般发布和开发是同时进行的,所以可能用户用的是1.0版本,而我们已经在开发2.0版本了。这时候如果用户反馈有bug,那我们当然要在对应的版本进行debug。另外有些更新功能可能还不够稳定,需要部分回滚到老代码。以上两种情景下,记录下每个版本对应的源代码就显得很重要了。再比如团队开发,团队里面每个人可能只负责整个程序的一个模块,最后把所有的人的代码合并到一起。通过这些平台的软件可以迅速的合并大家的代码,并且清楚记录下每个bug都是谁写出来的,这个就很棒了。

上面介绍的是为了体现这种开发模式在大项目上的作用,接下来讲讲怎么让自己的代码更方便的管理和上传服务器。

先明确一个主旨:服务器只保存用户数据,不保存VS的生成文件。说的直白点就是如何上传最少的东西让别人下载下来以后可以编译运行。前面一章我们已经介绍过了哪些文件是VS生成的,所以我们要上传的东西就有下面几个:1、用户源码;2、项目配置文件和解决方案文件;3、素材媒体文件;(以后还会有第三方库文件的管理,但在这里不涉及)

1、用户源码:即每个项目里添加的cpp和h文件。

2、项目配置文件和解决方案文件:

解决方案文件就是.sln

3、素材媒体文件:用户除了代码以外项目依赖的文件,比如:图片,文本,视频...

于是我重新调整了之前的解决方案路径,把原来的解决方案文件夹拷贝到新建文件夹“MyProjec1”里面,同时增加了三个新的文件夹如下:

“3rd”这个先跳过,这是保存第三方的库文件的。“material”就是保存素材文件,文件夹下一级再按照音频、配置文件、视频、图片这样的分类创建文件夹进行分类管理。

重点看下“usercode”怎么管理源代码,第一级先新建两个文件夹分别管理头文件和cpp文件:

第二级按照项目名分类

第三级按照VS的筛选器分类

好,以上就是usercode的文件夹结构,下面看看原来的解决方案文件夹Projec1现在还剩哪些东西,下面图片中上半部分是原来的解决方案文件夹,下半部分是我为了上传而删除掉没用的文件以后的文件夹:

然后每个项目文件夹里面,同上上面是原来的文件夹,下面是新的上传文件夹:

经过筛选以后,现在只用上传11kb数据到服务器:

上传以后,你只要下载Myproject1文件夹,打开.sln就可以打开VS解决方案,编译以后就可以调试了。

顺便提下:其实GitHub上项目都是Cmake的,这里介绍的和Cmake的差别大概就是:Cmake是动态生成.sln,.vcxproj....这些和VS配置相关的文件,而我这里直接把这些上传到服务器。

由于移动了cpp和h文件的位置,所以在原来的项目里面要把原来三个cpp移除,选定右键移除。然后添加在usercode>src>Project1下面的三个cpp到工程,可以直接把文件鼠标拖动到 解决方案资源管理器 里面,或者在 解决方案资源管理器 里面右键Project1工程》添加》现有项:

以后添加cpp文件和h文件记得要选到对应的目录下面,不要使用默认路径。每次移动Cpp文件和h文件都要在解决方案资源管理器里面进行重新移除添加。

由于我们还没有用到头文件,所以现在就可以编译运行了。如果用到了头文件,那就要涉及更改头文件的搜索路径的问题,下一篇再详细介绍下VC++目录中主要的三个目录。

VS2017的C++开发心得(五)项目开发的文件夹管理相关推荐

  1. Android中layout目录的作用,Android 开发中layout下的子文件夹

    Android 开发中layout下的子文件夹 发布时间:2020-10-25 11:42:36 来源:脚本之家 阅读:71 作者:厚土火焰山 如果一个项目内有很多个界面,那么在layout下会有太多 ...

  2. Android 编程之入门开发文件夹管理器开发详细讲解-1

    在我们的手持设备中,一般都会自带设备公司自己开发的文件管理系统.拍照系统之类的东东,今天我给大伙说说入门级开发的文件夹管理器,代码贼少 总共就6个类吧,没有夹杂其他外部应用,就是一个纯文件夹管理器 A ...

  3. 解决Maven创建java项目缺少resources文件夹的方法

    开发工具与关键技术:Java.Eclipse 作者:吴晓佩 撰写时间:2020年04月28日 使用maven创建的java项目,我发现我创建的项目中缺少resources的文件夹,一开始我以为直接创建 ...

  4. .Net项目分层与文件夹结构大全(最佳架子奖,吐槽奖,阴沟翻船奖揭晓)

    .Net项目分层与文件夹结构大全(最佳架子奖,吐槽奖,阴沟翻船奖揭晓) 一个装X的架构师,通过建文件夹就能亮瞎你的狗眼...                                       ...

  5. odoo 自定义视图_如何使用Windows的五个模板自定义文件夹视图

    odoo 自定义视图 If you're particular about how Windows displays the contents of your folders, you can cut ...

  6. Orchard 的项目结构-解决方案文件夹的原理与使用

    Orchard 的项目结构-解决方案文件夹的原理与使用 参考文章: (1)Orchard 的项目结构-解决方案文件夹的原理与使用 (2)https://www.cnblogs.com/haogj/ar ...

  7. Eclipse导入maven项目报Resources文件夹红叉问题解决方案

    Eclipse导入maven项目报Resources文件夹红叉问题解决方案 参考文章: (1)Eclipse导入maven项目报Resources文件夹红叉问题解决方案 (2)https://www. ...

  8. IntelliJ idea 创建Web项目后web文件夹下没有WEB-INF的解决方法

    IntelliJ idea 创建Web项目后web文件夹下没有WEB-INF的解决方法 参考文章: (1)IntelliJ idea 创建Web项目后web文件夹下没有WEB-INF的解决方法 (2) ...

  9. webpack打包vue项目之后dist文件夹在本地跑起来

    webpack打包vue项目之后dist文件夹在本地跑起来 转载为:https://blog.csdn.net/u014054437/article/details/79981307 谢谢博主 亲测, ...

  10. ide项目文件夹浅黄色编写代码无提示或看不到项目中的文件夹

    JetBrains ide全家桶ide都可能出现此情况,项目文件左上角选择为项目时不展示src等包/文件夹,只有选择Project Files时才会显示项目中的文件夹,一般出现此情况都是因为进行了删除 ...

最新文章

  1. Lua中使用Sleep函数
  2. 04. Web大前端时代之:HTML5+CSS3入门系列~HTML5 表单
  3. java ee技术_Java EE 6与Spring Framework:技术决策过程
  4. Java 练习:编写 Java 程序,输入年份和月份,使用 switch 结构计算对应月份的天数。月份为 1、3、5、7、8、10、12 时,天数为 31 天。月份为 4、6、9、11 时,天数为 3
  5. Docker教程(四) Docker镜像构建
  6. Kubernetes学习总结(15)—— Kubernetes 实战之部署 Mysql 集群
  7. linux 运行java工程师_java工程师linux命令,这篇文章就够了
  8. 取出被正则表达式匹配的值
  9. 图计算:社区发现算法
  10. IMDB排名前100名经典电影
  11. angular路由守卫
  12. 微信文章如何自动排版
  13. OllyDebug破解第一个 CM 程序 《Acid burn.exe》
  14. 香港云服务器提升性能,香港云服务器提升性能
  15. 计算机文档加密如何解锁,电脑提示文档已被administrator锁定怎么办
  16. Spring源码分析之推断构造方法(一)
  17. 几种基本放大电路详解
  18. nao机器人拆解_两周年了 Pepper都经历了什么呢?
  19. 网站采集工具之免费帝国CMS采集聚合
  20. 工具下载( 思维导图、原型图)

热门文章

  1. 如何解决DNS解析错误故障
  2. 操作系统复习——进程同步与通信
  3. JAVA关于父亲节的代码_关于父亲节的祝福语
  4. 用户体验设计师、UI 设计师和交互设计师有什么区别?
  5. UTRAN Iub接口介绍
  6. 707. 设计链表(中等 链表)
  7. 第九课堂-如何通过着装打造黄金比例完美好身材!
  8. excel多个表格数据汇总怎么做?
  9. 质数的java代码_java 代码求质数
  10. 使用git上传代码遇到关于remote: Support for password authentication was removed on August 13, 2021.的问题