使用 Visual SourceSafe 配置管理工具 心得
我们项目的配置管理工具是:Visual SourceSafe。以前大部分的时间是通过VS2005加载VSS库中的代码,然后进行简单的签出编辑和签入更新。
最近自己完成项目初期的UI搭建工作,而后将源代码上传到VSS上面去。PM在他的机器上下载代码,为能正常使用代码,需要手工做一些操作,大部分是由于dll的问题:总是得在项目的每个类库中动态加载dll文件,实在繁琐。
希望得到的效果:我将代码上传到Visual SourceSafe,同事在其他机器上下载后可以直接运行。
遇到的问题:总是要动态加载.dll文件(包括:项目类库生产的.dll 和 外部引用的.dll)。
出现问题的原因:在项目中引入的.dll主要有三种来源:
1、项目中其他类库编译后产生的.dll, 它一般是在类库的bin文件下;
2、外部.dll(没有在系统中注册),放在某文件夹下,如:D:\ChxmglWeb\THCommLib.dll;
3、已经在系统注册的.dll,如:系统的system.data 、 ESRI的 Geometry.dll等。
对第1种情况:源代码上传到VSS,bin上传不上去;第2种情况:其他人不一定有这个文件,而且路径也不同。所以经常会有问题。
解决的方法:
第1种情况:建一个文件名称为:Bin, 用于存放类库每次编译产生的动态.dll文件。具体操作是:右击项目中的某个类库->属性->生成事件,在生成后命令中写入:copy ..\debug\BLL.dll ..\..\..\..\Web\Bins(格式:copy关键字;..\debug\BLL.dll:类库编译后产生dll的名称和路径;..\..\..\..\Web\Bin:动态库生产的dll文件拷贝到哪。就是咱们刚才建的文件(具体怎么写要你的文件关系)。其中..\代表每个类库的bin文件夹,当然Bin文件夹包含在 解决方案文件夹的某子孙目录下)。
第2种情况:在Bins目录下建一个Dlls文件,用户存放外部.dll文件.
具体的文件关系如下图: 这里的解决方案文件文件名:ChxmglWeb;上述类库名为:DBModel。
然后将源代码上传到vss中,当然它不会把Bin文件也上传到VSS中,因为它不属于项目。现在将Bin文件夹安装上图的文件关系,拷贝到Web文件夹下:如下图。 注意:删除Bin文件夹下的类库dll,如DBModel.dll; 因为每个人下载后编译会产生自动自己的DBModel.dll(上面设置的 生成后命令 作用的)。
其他心得:
1、回退到历史版本:在vss中选择需要回退的项目->右击->选择show history->填入是哪个用户的历史版本->选择要回退到的历史版本->get;
2、关于使用VSS库中的代码:先将代码下载到本地(get lastest version->勾上recursive和build tree),然后使用vs2005打开代码。其中.vssscc和 .scc文件就是和vss库绑定的文件。