项目之间的公共库引用和联调方法整理

很多时候我们在搭建每个项目框架的时候,总会有些公共的类库需要引用,如果每个项目都引入源码,会出现这样的情况:某个项目更新了公共类库,那么每个项目引用过的都需要再拷贝代码同步(可以使用Beyond Compare对比然后进行修改,总的来说项目一多,时间一久就会很乱且用的时间越多,非常不靠谱!);所以下面我研究了几种方式:

1、【这个好处是最多的,联调、最新修改的代码都解决了】如果公司使用的SVN(git的方式差不多),那么可以用svn的external功能,在每个项目上用external迁出公共库的代码,然后解决方案引入这些公共项目;

①、好处:a、每次更新了公共库都可以获取到最新的,且可以直接修改公共库然后提交到SVN,而且可以联项目一起来调试这些公共库,毕竟是直接源码引用的。

②、但是也有不好的,比如:a、公共库的源码公开了,可能对于一些不能公开的库代码没有保护作用。b、库的版本没办法得到有效控制,永远都要获取最新的,如版本1的架构和版本2的架构相差很大,我继续用版本1的,且版本1的代码还有人在维护,这个就没办法控制了,但是这是有解决办法的,用svn的分支和版本号,再或者直接svn上建立版本2的代码库,再重新引入源码进来也能完美解决。c、每次分配项目svn权限的时候需要分配相应公共库的权限,如果公共库的依赖库越多,就要再分配依赖库的svn权限,所以依赖方案解决麻烦,权限分配配置多,且麻烦。

 

最后,公共库的开发和维护守则:

1、每次更新公共库的方法时,旧的方法不能去除,只能指引到新方法上,便于兼容旧的项目,即只增无减。

2、每次开个最高级别的版本时,直接拷贝一份旧的进行维护的保存,如要开发V2的,V1的开个库来继续维护;至于V1和V2直接的某些公共部分同步可以用Beyond Compare对比合并或者用分支等都行。

3、公共库必须有明确的版本号概念,必须有这几个:// 主版本(重构时加1)// 次版本(增加功能时加1) // 内部版本号(修改BUG时加1)// 修订号(系统编译类随机形式,采用微软的型号代替,原理为当天的秒数递增)

如:AssemblyInfo.cs文件里面的

 

posted @ 2016-09-18 01:53  EasonJim  阅读(1707)  评论(0编辑  收藏  举报