基於微軟開發平台構建和使用私有NuGet託管庫

2022-07-09 16:33:10 字數 2206 閱讀 6107

本篇blog包含使用tfs2017,vs2017等平台和工具搭建和使用nuget庫等基本過程,為團體提供更加自動化和高效的研發活動支援。

作為以產品線或者以專屬業務為擴充套件的專案型別的軟體研發團體,都會有自己的基礎軟體框架和功能模組的軟體產品智力資產庫。團隊無形智力資產的積累和最大化使用,不僅是組織的軟體成熟度能力的體現,更是軟體企業或團體研發成本和經濟效益的最大化平衡的有效手段。在研發團隊中,開發乙個大型的專案或產品通常會使用許多的公共型別的資源以及企業內部的一些基礎資源,比如開源的前後端框架、指令碼、dll檔案等等。這些被引用的資源之間也存在著諸多的依賴和版本差異,如果沒有乙個合理的專案庫管理機制和平台,團隊之間處理這些繁瑣的活動要浪費許多的時間和精力。

在微軟的tfs產品中,本身作為乙個alm過程的基礎支撐平台,引入了包管理的功能支援。特別是基於微軟開發平台的軟體團隊,針對公共的資源使用,我們大量使用www.nuget.org提供的共享資源,但是團體內部的公共**類庫我們通常不要放到公網上去,在內部使用通常還是使用人工複製拷貝的模式進行使用,當數量大到一定程度,由於多個版本,多研發人員共同協作,產生了大量的資源的浪費。比如,乙個研發人員開啟乙個專案進行工作,通常會因為軟體包之間的各種依賴,導致程式無法執行除錯,通常要花費許多的時間來查詢和整理這些共享的類包。

下面記錄了乙個搭建和使用私有nuget託管庫的一些過程,希望可以為這方便有需求的朋友和團體提供一些有價值的參考。

1、 在tfs2017中配置包管理庫

首先在tfs web portal中建立乙個新的託管包源。

完成後我們的乙個私有的nuget託管庫就已經完成了,後續是如何發布我們的類包到私有庫中。

2、 製作類包

首先我們準備乙個非常簡單的類庫專案。幷包含乙個對jquery共有類庫的乙個應用,在該示例中不太合理,目的是後面演示一下私有類庫對公有類庫的乙個依賴使用。

開啟上面建立的類庫專案的所在資料夾,並把nuget.exe程式拷貝到該目錄。並在該目錄啟動cmd,執行命令:nuget.exe spec,生成nuspec配置檔案。

執行命令:nuget.exe pack classlibrary1\classlibrary1.csproj ,生成nugeg包檔案。

執行:nuget.exe push -source "pcl" -apikey vsts classlibrary1.1.0.0.0.nupk,推送自製包到私有託管庫中。

推送成功後,可以看到tfs的webportal中的如下資訊,包括如何獲取包命令引數,已經相關的基本資訊,如本示例中對jquery的依賴。

3、 使用私有類包

準備乙個簡單的window桌面應用程式。

在vs的「程式包管理設定」中新增上面建立的私有託管nuget庫。

在專案的「管理nuget程式包」中,為專案新增自製包的應用。

完成後,專案中新增如下的引用和資源包,並使用類庫中提供的方法。

企業或團體的內部共享資源包通過一定規劃,按照2或3種維度屬性,合理組織和許可權管理後,並對開發團隊進行簡單的指導和培訓,對於開發周期過程中提供智力資產的復用和提公升研發效率會有立竿見影的效果。

基於微軟開發平台構建和使用私有NuGet託管庫

本篇blog包含使用tfs2017,vs2017等平台和工具搭建和使用nuget庫等基本過程,為團體提供更加自動化和高效的研發活動支援。作為以產品線或者以專屬業務為擴充套件的專案型別的軟體研發團體,都會有自己的基礎軟體框架和功能模組的軟體產品智力資產庫。團隊無形智力資產的積累和最大化使用,不僅是組織...

基於 紅迅 敏捷快速開發平台構建營銷管理平台

客戶背景 立功集團是一家電子設計 生產製造 綜合服務能力的一家高科技晶元公司,旗下主要有兩大主營業務公司 立功科技股份 致遠電子。廣州立功科技股份 成立於1999年,面向工業 汽車電子使用者提供晶元和智慧型物聯解決方案,為客戶提供從選型評估 開發設計 測試認證到量產防偽,貫穿產品全生命週期的專業技術...

微軟計畫在開發平台整合F 語言 基於功能程式設計概念

微軟開發人員部門的副總裁somasegar在其部落格中寫道,微軟計畫在其visual studio開發平台中整合f 程式語言。但是,微軟還沒有公布正式的發布計畫。somasegar表示,f 基於功能程式設計的概念。功能程式語言將計算看作是數學函式的賦值,數學特性使得它對需要大量使用數學符號的領域的專...