最近在做公司的一个项目,这个项目由四个子项目组成,所以就建立了四个解决方案,将这四个解决方案放在一个公共文件夹下面,如图示
在public文件夹下还存在两个文件夹
这俩文件夹下放了两个项目,一个是单点登陆的系统,不方便说出公司项目名字,直接就叫做单点登陆吧,另一个文件夹下放的是公司的公共类库,有五个,现分别叫做公库1-5吧,这个五个公库最开始的时候都在自己的项目文件夹下都有packages文件夹,用来存放自己的引用文件,但是在这五个公库的文件夹之外,还有一个文件夹叫做reference,用来存放这五个公库的引用文件,OK,这就是public部分。
接下来变态的地方来了。这五个公库也是互相引用的,但是有的是在解决方案里直接引用项目,有的是引用别的项目里生成的DLL文件,还有的直接引用的是自己项目下的bin文件夹下生成的DLL文件,这样生成解决方案的时候,有的项目引用就会直接清理掉,清理掉了以后就没有引用文件了,然后项目就报错。
后来老大吩咐,单点登陆的系统改个名字,这里就叫做同一登陆系统吧,而且所有项目的目录结构重新放置,把五个公库的packages抽出来放到public文件夹下,这五个公库都到这里引用文件,然后那四个项目也到这里引用文件。然后小组某大神就这么改了,而且把整个项目重新托管到VSS服务器上去。
接下来,噩梦就开始了。
该大神自己花了一天的时间,,在各种地方将一些花里胡哨的引用放到packages文件夹里去,将自己项目下的目录结构重新调整,引用文件全部更改,OK了以后,直接将自己的所有项目覆盖到VSS服务器上去。
但是,在这样调整之前,我们就已经将自己的工作完成的差不多了。而且都讲自己的代码签入到了VSS上去。后来这样一覆盖,VSS上的工作目录和大家的项目实际目录路径就对应不上了,大家在自己的项目里无法直接签入签出代码了。比如A将代码签入了以后,我去获取代码,获取不到,而且大家在各自负责的模块里,添加删除修改了很多文件,大家的工程文件也不一样。一旦有人获取最新代码,就会将自己的某些文件排除在项目外。而且很多引用文件在各自的电脑上的位置也对应不上。这样就是A在自己的电脑上将引用调好了以后,上传代码,B获取最新代码,然后获取到的是A设置好的工程文件,所以B这边的引用文件对应不上,然后B这边就报错,然后B就在自己这边调整自己的引用文件。。。。然后你懂的。后来我索性将原来的代码备份,重新到VSS上下载了这个项目的代码,获取下来一看,几千个报错。又是引用文件的错误,然后苦逼的调整引用文件,然后上传代码,然后别人获取最新,然后又报引用错误,别人又更改自己的引用,然后又上传代码,然后获取又报错。。。
。。。。
就这样,这几天大家都这样,自己获取最新代码了以后,先在自己这边把应用调好,先不上传代码,等功能完成了以后,再上传代码,然后别人获取报错,调整引用。。。。无穷匮也。。。
深刻教训就是,建立项目一定要规范,一定要规范,一定要规范。