Nuget快捷實踐

来源:https://www.cnblogs.com/zhu-wj/archive/2018/03/04/8505510.html
-Advertisement-
Play Games

Nuget快捷實踐 簡介 本文主要包含三個部分,即創建nuget包、上傳nuget包和刪除nuget包。旨在引導快速使用nuget打包和使用,並實現對於nuget的簡單管理。 本文使用的nuget服務是基於自行搭建的nuget server v3.0.0.0。具體搭建方法可以參考nuget官方的 " ...


Nuget快捷實踐

簡介

本文主要包含三個部分,即創建nuget包、上傳nuget包和刪除nuget包。旨在引導快速使用nuget打包和使用,並實現對於nuget的簡單管理。

本文使用的nuget服務是基於自行搭建的nuget server v3.0.0.0。具體搭建方法可以參考nuget官方的指導教程

另外文章中還涉及到兩個程式:

  • Nuget Package Explorer:v4.1.38
  • nuget.exe:v4.5.1.4879

本文閱讀時間大約為十分鐘。

創建nuget包

對於nuget的打包方式的權威指南當然是nuget官方的指導文檔。這份文檔優點是對於nuget包的結構講解的很清楚,缺點是不太符合本文的快速實踐的意圖。針對這個情況也有解決辦法,萬能的網友們開發了Nuget Package Explorer,目前該項目托管在Github上,安裝了Win10系統的可以直接到微軟應用商店下載

打開Nuget Package Explorer後選擇新建package,在新建界面中填寫必要信息。包括包的Id,版本號,作者,發佈說明等。

以上圖為例,在新建nuget包時重點填寫如下信息:

  • Id:包的唯一標識,本文以Company.Application.Model.Lib為例
  • Version:當前發佈的類庫版本號,本文以1.0.0為例
  • Title:類庫名稱
  • Authors:作者
  • Owners:所有者
  • Description:類庫描述
  • Release Notes:當前版本的發佈說明

如果需要添加dll文件,則在右側的Package Contents空白區域右鍵,在菜單中選擇Add Lib Folder,併在新出現的lib上右鍵,在菜單中選擇“Add Existing File...”。操作界面參考下圖。

創建有依賴的nuget包

如果編譯類庫時如果有的dll是別的nuget包的,最好是將被依賴的nuget包添加到當前nuget包的依賴項中。否則用戶同時下載兩個類庫時,可能出現相同的dll文件被覆蓋的情況,以至於難於控制dll的版本,而且容易出現編譯問題。

那麼如何添加依賴項呢?參考下圖的步驟:

在填寫類庫信息的Package Metadata頁最下方有個按鈕,點擊後彈出相關的編輯頁面。下圖以標註的形式說明操作順序:

  1. 點擊Edit Dependencies按鈕彈出依賴項編輯頁面
  2. 點擊Groups旁邊的加號按鈕,Tip是Add a new group,不要編輯Target Framework編輯框
  3. 點擊依賴項編輯頁面下方的小手圖標的按鈕,Tip是Select dependency from nuget feed
  4. 在彈出的Select package頁面選擇相關的依賴項並雙擊,完成選擇
  5. 使用自己搭建的nuget站點時,Select package頁面的Package Source可能是http://功能變數名稱:埠/nuget/

上傳nuget包

上傳nuget包的方式很簡單,在Nuget Package Explorer的File->Publish菜單,就可以打開nuget上傳頁面。該頁面需要填寫兩個內容:

  • Publish Url:nuget伺服器的發佈地址,可以在nuget server首頁查看到
  • Publish key or PAT:發佈時驗證合法性的密鑰,可以跟nuget server的管理員詢問得到

刪除nuget包

經過上面的幾個步驟之後,nuget包就已經完成打包和發佈工作了,並且可以提供給其他同事使用。但是如果不小心上傳了錯誤的nuget包,或者在發佈後一段時間發現有的nuget包版本存在嚴重問題,不能提供給其他人使用,而且想要刪掉該怎麼辦呢?

對此Nuget Package Explorer表示無能為力,要完成這個工作可以藉助nuget官方提供的nuget.exe工具來完成這個事情。

nuget.exe支持delete命令,詳細文檔可以參考此處

從官方網站下載nuget.exe在命令行中直接執行nuget.exe後(不含參數),會列出nuget程式支持的所有命令:

輸入nuget help delete,彈出如下提示:

以本文中上傳的nuget包Company.Application.Model.Lib v1.0.0為例,刪除命令是:

nuget delete Company.Application.Model.Lib 1.0.0  -ApiKey xxxx -Source http://ip:port/nuget

執行命令後會彈出提示,提示是否真的需要刪除,直接輸入y並回車就ok了。

總結

相對於傳統的dll管理方式,使用nuget的方式可以極大的提高方便性並有效的對於依賴項進行版本化的管理。解決方案編譯時還能自動下載nuget包的相關內容,有條件的情況下還是儘量使用nuget進行公共文件的管理。

參考資料


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • swing之簡單登陸窗體的實現 幾點剛學時寫代碼犯得錯誤: 1.老是忘記佈局管理,這樣導致有時候界面只會出來你寫的其中一個組件 2.獲取密碼的時候不能只是簡單的getpassword去比較,要把獲取的東西轉換成String類型後再去比較 3.如果不寫setvisible,啥也不會出來 上兩張截圖吧: ...
  • 接上文 註釋的使用 在jinjia2模板中,使用{# #}進行代碼註釋,如下所示 運行後發現,註釋不會被render出來 去掉空行 兩種方法可以去掉jinjia2模板中的空白行,一是設置jinjia2的環境變數,如下 app.jinja_env.trim_blocks = True app.jinj ...
  • File 遞歸刪除文件夾中所有文件文件夾 又寫了一遍 找不同 ...
  • 本文將介紹如何使用虛擬機一步步從安裝Ubuntu到搭建Hadoop偽分散式集群。 本文主要參考:在VMware下安裝Ubuntu並部署Hadoop1.2.1分散式環境 - CSDN博客 一、所需的環境和軟體:(以下是我們的環境,僅供參考) 1. 操作系統:Windows 10 64位 2. 記憶體:4 ...
  • 在某種情況下,我們不得不進行整型等數據類型與字元串類型的轉換,比如,將“1234”轉換為整數,常規的我們可以使用atoi函數來進行轉換,或者是寫一個迴圈來做轉換,我們在這裡也可以使用sstream類來做轉換。示例代碼如下,演示了atoi和sstream的方法。 ...
  • 前言 朋友們, 大家好,我還是Rector,寫ASP.NET MVC 5系列文章 [\[一步一步創建ASP.NET MVC5程式Repository+Autofac+Automapper+SqlSugar\]][6] 的那個家伙。 今天為大家帶來本系列的第十篇文章。 本文知識要點 本文將要給大家分享 ...
  • 最近公司做的項目要和京東的數據做對接,所以要做個類似京東商品的詳情頁。頁面的數據,是可以從京東介面獲取到的,但是地址插件選擇的效果需要自己實現。前端的同事在之前的項目中,已經選擇了一款地址插件(city-picker.js),但是這款插件最多只支持三級地址,而且最主要的是這插件的地址數據來源,是寫死 ...
  • 廢話不多說直接正題: 首先我們先在Oracle資料庫下建了一個用戶叫做lisi,密碼為lisi,在這個用戶下建立一張表叫做“USERS”,在這個表下新增三個數據。 方式一:利用OleDb連接Oracle。 方式二:利用Oracle.ManagedDataAccess.Client方式,在使用前,我們 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...