最近接手了一个老的c# 客户端项目.

开发人员很少,项目一直是采用本地开发机build, 然后直接打升级包的开发模式。

发现了两个大坑

  1. 项目采用的是一个 solution 多个 project 的代码结构. proj1 修改了代码, 有 bug, 但是开发打包时把proj1.dll 遗漏了,没有打包进去,所以线上一直是正常的。
--Solution1
    - proj1 // 有 bug,打包时遗漏
    - proj2
    - proj3
    - MainProject

写了个简单的脚本,用 7z 的 console 模式来压缩打包, 避免人工排除文件时出现遗漏。

7za.exe a -tzip Upgrade_xxxxxx.zip .\ -xr@exclude.txt, exclude.txt 包含需要排除的文件和目录。

> cat exclude.txt
11.txt
11.test
11.xml
Dir/
  1. 开发没有 git 提交的习惯, 有问题直接修复, 修复后 build 打包,离职时把所有代码一下子整个提交了。 git 仓库里只能看到 commit1, commit2, 线上正常的包找不到对应的commit, 现在 feature1 问题有点多, 想把 feature1 代码剥离出来, 发现根本办不到。
commit1
... fix1
... fix2 // build, package. 线上正常跑
... feature1
commit2

良好的git 开发习惯很重要啊:(😭