基于微软开发平台构建和使用私有NuGet托管库

本篇blog包含使用TFS2017,VS2017等平台和工具搭建和使用NuGet库等基本过程,为团体提供更加自动化和高效的研发活动支持。

作为以产品线或者以专属业务为扩展的项目类型的软件研发团体,都会有自己的基础软件框架和功能模块的软件产品智力资产库。团队无形智力资产的积累和最大化使用,不仅是组织的软件成熟度能力的体现,更是软件企业或团体研发成本和经济效益的最大化平衡的有效手段。在研发团队中,开发一个大型的项目或产品通常会使用许多的公共类型的资源以及企业内部的一些基础资源,比如开源的前后端框架、脚本、DLL文件等等。这些被引用的资源之间也存在着诸多的依赖和版本差异,如果没有一个合理的项目库管理机制和平台,团队之间处理这些繁琐的活动要浪费许多的时间和精力。

在微软的TFS产品中,本身作为一个ALM过程的基础支撑平台,引入了包管理的功能支持。特别是基于微软开发平台的软件团队,针对公共的资源使用,我们大量使用www.nuget.org提供的共享资源,但是团体内部的公共代码类库我们通常不要放到公网上去,在内部使用通常还是使用人工复制拷贝的模式进行使用,当数量大到一定程度,由于多个版本,多研发人员共同协作,产生了大量的资源的浪费。比如,一个研发人员打开一个项目进行工作,通常会因为软件包之间的各种依赖,导致程序无法运行调试,通常要花费许多的时间来查找和整理这些共享的类包。

下面记录了一个搭建和使用私有NuGet托管库的一些过程,希望可以为这方便有需求的朋友和团体提供一些有价值的参考。

1、 在TFS2017中配置包管理库

首先在TFS Web Portal中创建一个新的托管包源。

下载nuget.exe工具,备用。

完成后我们的一个私有的NuGet托管库就已经完成了,后续是如何发布我们的类包到私有库中。

2、 制作类包

首先我们准备一个非常简单的类库项目。并包含一个对JQuery共有类库的一个应用,在该示例中不太合理,目的是后面演示一下私有类库对公有类库的一个依赖使用。

打开上面创建的类库项目的所在文件夹,并把nuget.exe程序拷贝到该目录。并在该目录启动cmd,执行命令:nuget.exe spec,生成nuspec配置文件。

执行命令:nuget.exe pack ClassLibrary1\ClassLibrary1.csproj ,生成nugeg包文件。

按照前面下载nuget.ext界面中的命令,执行:nuget.exe sources Add -Name "PCL" -Source "http://tfs2017:8080/tfs/DefaultCollection/_packaging/PCL/nuget/v3/index.json" 添加源。

执行:nuget.exe push -Source "PCL" -ApiKey VSTS ClassLibrary1.1.0.0.0.nupk,推送自制包到私有托管库中。

推送成功后,可以看到TFS的WebPortal中的如下信息,包括如何获取包命令参数,已经相关的基本信息,如本示例中对JQuery的依赖。

3、 使用私有类包

准备一个简单的Window桌面应用程序。

在VS的“程序包管理设置”中添加上面创建的私有托管NuGet库。

在项目的“管理NuGet程序包”中,为项目添加自制包的应用。

完成后,项目中添加如下的引用和资源包,并使用类库中提供的方法。

企业或团体的内部共享资源包通过一定规划,按照2或3种维度属性,合理组织和权限管理后,并对开发团队进行简单的指导和培训,对于开发周期过程中提供智力资产的复用和提升研发效率会有立竿见影的效果。

时间: 2024-10-14 20:07:27

基于微软开发平台构建和使用私有NuGet托管库的相关文章

最新研发的基于Java的高速开发平台

可自我扩展的智能开发平台       在开发平台设计过程中,联科研发部一開始就希望能研发一套智能开发机制能自己开发自己的平台-即一个能自我修复和自我扩展的开发平台.这个开发平台不但能开发其它应用还能不断的完好自己的能力,从而更好的提升开发效率和自我进化,也为平台的不断发展提供源源不断的动力. 採用J2EE架构全然自主研发 1.全然基于自主研发的系统框架 2.底层核心未採用不论什么开源框架(如SSH) 3.全然自有知识产权 稳定成熟可靠        10年专注研发稳定性.可靠性.安全性得到众多上

最新研发的基于Java的快速开发平台

可自我扩展的智能开发平台       在开发平台设计过程中,联科研发部一开始就希望能研发一套智能开发机制能自己开发自己的平台-即一个能自我修复和自我扩展的开发平台,这个开发平台不但能开发其他应用还能不断的完善自己的能力,从而更好的提升开发效率和自我进化,也为平台的不断发展提供源源不断的动力. 采用J2EE架构完全自主研发 1.完全基于自主研发的系统框架 2.底层核心未采用任何开源框架(如SSH) 3.完全自有知识产权 稳定成熟可靠        10年专注研发稳定性.可靠性.安全性得到众多上市公

软件开发平台的演变

从编程之初,便免不了和方法,类,接口之类的东西打交道.久而久之,自然会对此进行总结,由此而产生了开发平台.而今中国的程序员之中,有很大一部分都是编一些企业MIS.政府MIS之类的程序.其主要工作就是对数据进行一下增删改查的操作,对MIS系统做一些基础的管理而已.软件开发平台有两种平台模式:一种是传统的C/S架构模式,一种是现在流行的B/S架构模式.B/S架构模式是随着互联网的流行,自然又要求以互联网为基础,把这些都网络化,以实现网络资源共享,而不是传统的单机模式.这便激发了软件开发者的创造力,形

APICloud发布低代码开发平台

云原生的出现,致使传统IT模式正在集中向云架构.云开发转型,其中在企业业务的互联网化.数字化进程中尤为突出,并衍生出"敏捷开发"."快速迭代"的刚性需求.面对双模IT,如何打造全新的IT团队与模式?并更好的满足由业务部门发起庞大且零散的IT需求,成为众多CIO与CTO的巨大挑战.在复杂的供需环境中,低代码开发平台正在快速的出现和普及. 与此同时,效率一直是企业生产力水平的重要标杆,而效率的服务对象则是需求:数字化时代的下半场,能否突破传统效率边界,甚至决定着一个企业

Meteor——不一般的全栈开发平台!

一.全栈开发平台 - 不仅仅是前端 Meteor和那些名声如雷贯耳的前端框架,比如Angular, React等都不一样,它是一个 采用单一开发语言的全栈开发的平台:开发者可以使用JavaScript同时 进行前端和后端的开发,然后交给Meteor运行这个包含了前后端的完整应用: 从图中你可以看到,Meteor在前端使用浏览器作为基础运行环境,在后端则是以NodeJS作为 基础运行环境,以MongoDB作为数据持久化系统. Meteor提供了一个横跨前端和后端的中间层平台,预置封装了很多功能库,

【金码坊AOS开发平台】完善了AOS标签库,和标准标签库完美兼容了

[金码坊AOS开发平台]今天①完善了AOS标签库,和标准标签库完美兼容了.②新开发了根据子页面动态生成主页面的二级导航菜单功能.#AOS开发平台#

基于微软平台IIS/ASP.NET开发的大型网站有哪些呢?

首先说明一下,本文绝不是要说Microsoft平台多么好,多么牛.只是要提醒一些LAMP/JAVA平台下的同志们,微软平台不至于像你们说的,和想象的那么不堪!只是你们自己不知道而已.同时,也希望广大Microsoft同志们不要太妄自菲薄,有点信心!下面一一列举基于微软平台IIS/ASP.NET开发的大型网站有哪些:http://www.msn.com/ http://www.live.com/ (包括OneDrive.OneNote.Hotmail.Office365等等)http://www.

基于Jenkins的自动构建系统开发_android总结

持续集成相关理论 1.1 极限编程的概述 1.1.1 极限编程的产生 2001年,为了解决许多公司的软件团队陷入不断增长的过程泥潭,一批业界专家一起概括出了一些可以让软件开发团队具有快速工作.响应变化能力的价值观和原则,他们称自己为敏捷联盟.敏捷开发过程的方法很多,主要有:SCRUM,Crystal,特征驱动软件开发(Feature Driven Development,简称FDD),自适应软件开发(Adaptive Software Development,简称ASD),以及最重要的极限编程(

基于XP打造windows7的C++开发平台--vs2010+windows SDK for windows7

IT业是一个创造奇迹的行业,IT业也是一个年轻的行业,IT业更是一个不断更新的行业.在今年2009年,微软已经连续推出visual studio2010 beta1 与 visual studio2010 beta2 两个版本.在2010.2月就要推出正式版了,beta版本已经展示了visual studio2010的所有新特性与革新,自从visual studio 2002推出以来,visual studio 2002 -> 2003 ->2005 ->2008 ->2010,产