基於微軟開發平台構建和使用私有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種維度屬性,合理組織和權限管理后,並對開發團隊進行簡單的指導和培訓,對於開發周期過程中提供智力資產的復用和提升研發效率會有立竿見影的效果。

                                                                                                               


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM