svn协同开发下的dll版本管理最好实践

 

下载https://github.com/NuGetPackageExplorer/NuGetPackageExplorer客户端包管理器并安装。

以上主假使对dll发表和引用的保管介绍了本人本身在品种中做的特级实践,前边会特地写1篇文章介绍怎么着搭建Jinkens并使用Jinkens完结自动化创设和布置的(也足以做自动化测试)。

 

     –documents <–文档

      –build <–自动化营造脚本

    –test <–测试用例

     –documents <–文档

 

 

二.
由于引用版本不等同,或版本更新,开发时俩个开发人士的编译调试,甚至本地质衡量试都不会有标题,不过当须要表露测试版本或发表到生产条件时,就会生出版本争辩导致致命bug,可能这么些bug仍然3个隐形bug,很难发现或捕获;

图片 1

 

  1. 打开NuGet Package Explorer

  2. 选择Create a new package

  3. 左手是编写壹些属性等,右边是添加包文件

   –XXXXX.sln <– 消除方案

  1. 在右手右键,选取菜单Add a  Lib Folder,在Lib上右键,采取Add .NET
    Folder来添加对应框架的本子,然后右键选拔我们需求加上的文本即可

      –build <–自动化创设脚本

 

先是种是运用TortoiseSVN提供的external天性,在那在此以前先介绍一下,笔者动用的svn目录结构,如下

    –references <–引用

五.在右侧点击艾德it
dependencies,可添加外部依赖,在下载应用时,会自动检查评定依赖包并下载

壹.
是因为提交代码的开发职员失误,忘记提交本地转移的文件或少提交,尤其是croj或sln项目和新加上的文书,因为新加上的文本在svn下私下认可是?状态的,那或多或少来说,只好靠开发职员本人仔仔细细化解;

  1. 在右边右键,选用菜单Add a  Lib Folder,在Lib上右键,选用Add .NET
    Folder来添加对应框架的本子,然后右键选用大家须要添加的文本即可

图片 2

 

7.做到以下操作后,大家就能够点击最上边的File菜单,采取Publish,在弹出的窗体,配置刚才搭建的服务器地址PublishUrl,在底下须要填Publish
Key,相当于一个密码,那个是在服务器里web.config里铺排的,找到节点<add
key=”apiKey” value=”XXXXXXX”/>,将那一个value复制过来即可颁发

 

第二点往往是沉重的,因为在便捷中,提倡的是尽快暴光难点并缓解,那么有没有壹种格局或形式去解决他,或逃避这么些题材呢?答案明显是毫无疑问的,在此处,笔者介绍一下当下自作者接触到的俩种版本管理(或然第2方库的管住方案)。

 大家就算A项目是框架的档次,B项目是事情代码,B项目须要引用框架项指标dll,那么,A项目编写翻译完毕后,在releases里公布1个一.0.0的版本(最佳利用生成事件写XCOPY脚本,那样就不会遗忘发版本,或手动去拷贝构建的版本),如下图

    –releases <–release版本

–tags  <–公布版本

    –src <–源码

–trunk  <–开发基本

 

 

 

1.
是因为提交代码的开发职员失误,忘记提交本地转移的公文或少提交,尤其是croj或sln项目和新增进的文件,因为新加上的文书在svn下私下认可是?状态的,那一点的话,只可以靠开发职员本人仔仔细细化解;

四.填入基本音讯,个中Id其实是Name,便是大家在nuget浏览器里观看的名称

下载https://github.com/NuGetPackageExplorer/NuGetPackageExplorer客户端包管理器并安装。

   –XXXXX.sln <– 消除方案

    –releases <–release版本

–tags  <–发表版本

形成以往,在每一回只要更新那个目录,就能及时得获取到新型的引用版本,在品种文件中对该dll进行引用,实际上引用的是周旋目录,那样就消除了因为版本或路径不相同等导致的难点,预防那个人工的操作,可以一点都不小的节约大家的支出时间到实际须要化解的问题上,大家每趟签出的本子也能保险能够创设成功,当然,假若你们项目的准的话,最棒写上自行构建脚本,其余正是肯定肯定肯定要使用神器(Jinkens),用上它,你们项目组真的能过上欢悦和谐幸福的活着。

     –packages <–nuget包

那正是说,在B项目中,大家打开reference目录,右键,点击属性,打开属性窗体,按如下操作

 

 

姣好之后,在历次只要更新那几个目录,就能立时得获取到最新的引用版本,在类型文件中对该dll实行引用,实际上引用的是冲突目录,那样就一蹴即至了因为版本或路径不一样导致的难题,预防这几个人工的操作,能够非常的大的节约大家的支付时间到实际必要缓解的标题上,我们每回签出的版本也能担保能够营造成功,当然,假诺你们项指标准的话,最棒写上电动构建脚本,此外正是迟早肯定肯定要使用神器(Jinkens),用上它,你们项目组真的能过上欢欣和谐美满的生存。

  1. 打开NuGet Package Explorer

  2. 选择Create a new package

  3. 左侧是编写一些天性等,右边是添加包文件

2.
由于引用版本不平等,或版本更新,开发时俩个开发职员的编写翻译调节和测试,甚至本地测试都不会不正常,不过当需求透露测试版本或揭橥到生育环境时,就会时有发生版本龃龉造成致命bug,恐怕这几个bug照旧二个隐形bug,很难发现或捕获;

其次点往往是沉重的,因为在全速成人中学学,提倡的是及早揭穿难点并缓解,那么有未有一种艺术或艺术去消除他,或规避这些难题啊?答案明显是必然的,在此地,作者介绍一下脚下自家接触到的俩种版本管理(可能第1方库的管制方案)。

 

图片 3

上述重点是对dll公布和引用的管制介绍了自小编本身在品种中做的最好实践,后边会专门写1篇小说介绍如何搭建Jinkens并运用Jinkens实现自动化营造和布局的(也得以做自动化测试)。

    –src <–源码

–branches  <–开发分支

七.成功以下操作后,我们就能够点击最上边的File菜单,选用Publish,在弹出的窗体,配置刚才搭建的服务器地址PublishUrl,在底下要求填Publish
Key,也正是叁个密码,那么些是在服务器里web.config里布署的,找到节点<add
key=”apiKey” value=”XXXXXXX”/>,将那几个value复制过来即可颁发

   
作为一名开发人士,经常境遇的七个难点是,当使用svn签出一份最新代码时,日常不可能2回编写翻译通过,导致消费多量时刻去化解编写翻译难题,这里遭遇的难点壹般能够分为三类:

    –references <–引用

图片 4

其次种办法,就是接纳微软公然的Nuget工具,创设地面包车型客车nuget服务器,那种方式集成好一些,能够定义包对包的依靠,那样的依靠关系就无须使用者再去管理。废话不多说,先搭建nuget服务器,具体能够看
https://www.cnblogs.com/lzrabbit/archive/2012/05/01/2477873.html
那位博主介绍得比较详细。那里提及到的少数是,在本子升级时,比如开始应用的是有个别包的一.0.0版本,后来调升到壹.一.0版本,后来一.1.0友好再一次上传了二回,不过版本号未有变,须求删除packages包里对应的壹.一.0的包,最佳把本地缓存也清空一下,不然大概照旧会拉去一.一.0的旧版本。操作办法是,打开VS,选用菜单工具->Nuget
包管理->程序包管理器设置->常规->清空全数Nuget缓存。

–trunk  <–开发为主

     –packages <–nuget包

其次种格局,正是利用微软掌握的Nuget工具,创设地面包车型客车nuget服务器,那种艺术集成好一些,能够定义包对包的正视性,这样的信赖性关系就不用使用者再去管理。废话不多说,先搭建nuget服务器,具体可以看
https://www.cnblogs.com/lzrabbit/archive/2012/05/01/2477873.html
这位博主介绍得相比详细。那里聊起到的壹些是,在本子升级时,比如初叶选择的是有些包的一.0.0版本,后来升任到一.一.0版本,后来一.壹.0协调重新上传了一回,然则版本号未有变,须要删除packages包里对应的壹.一.0的包,最佳把地面缓存也清空一下,不然也许仍然会拉去一.一.0的旧版本。操作办法是,打开VS,选拔菜单工具->Nuget
包管理->程序包管理器设置->常规->清空全数Nuget缓存。

图片 5

伍.在左边点击Edit
dependencies,可添加外部正视,在下载应用时,会自动检验信赖包并下载

图片 6

率先种是应用TortoiseSVN提供的external本性,在那以前先介绍一下,作者利用的svn目录结构,如下

–branches  <–开发分支

成功上述操作后,大家就曾经搭建达成了小编们的本地nuget服务器了,假如已经在vs中布局好了本地nuget路径,那么大家就能够运用了。

   
作为一名开发职员,平日遭逢的八个题材是,当使用svn签出壹份最新代码时,平时不能够3遍编写翻译通过,导致消费大批量年华去化解编写翻译难点,那里碰着的标题壹般可以分为三类:

    –test <–测试用例

4.填入基本音讯,当中Id其实是Name,就是大家在nuget浏览器里观察的称号

那便是说,在B项目中,大家开辟reference目录,右键,点击属性,打开属性窗体,按如下操作

成功上述操作后,大家就早已搭建实现了我们的当地nuget服务器了,即使已经在vs中配备好了地点nuget路径,那么大家就能够使用了。

 大家假设A项目是框架的项目,B项目是事情代码,B项目须要引用框架项目标dll,那么,A项目编写翻译达成后,在releases里发布3个一.0.0的本子(最棒利用生成事件写XCOPY脚本,那样就不会忘记发版本,或手动去拷贝创设的本子),如下图