關於NuGet

来源:http://www.cnblogs.com/Jackson-Bruce/archive/2016/11/07/6037068.html
-Advertisement-
Play Games

一、NuGet是什麼? NuGet是Microsoft開發平臺的程式集包管理器,它由客戶端工具和服務端站點組成,客戶端工具提供給用戶管理和安裝/卸載軟體程式包,以及打包和發佈程式包到NuGet服務端站點等功能,服務端站點存儲已經發行的軟體包,併為NuGet客戶端軟體包庫提供服務,使軟體包共用給其他的 ...


一、NuGet是什麼?

NuGet是Microsoft開發平臺的程式集包管理器,它由客戶端工具和服務端站點組成,客戶端工具提供給用戶管理和安裝/卸載軟體程式包,以及打包和發佈程式包到NuGet服務端站點等功能,服務端站點存儲已經發行的軟體包,併為NuGet客戶端軟體包庫提供服務,使軟體包共用給其他的開發者。

二、NuGet服務端站點的搭建

1、打開Visual Studio創建空的Web站點,如圖:

 

2、打開管理NuGet程式包,選擇程式包源為:nuget.org 然後在搜索框中輸入:NuGet.Server,如圖:

當然你也可以在程式包控制臺中輸入下麵的命令直接安裝

install-package NuGet.Server

3、安裝完成之後,打開web.confg 修改apikey 如圖:

如果requireApiKey的值設置為false,那麼apikey就可以設置為空,我這裡隨便搞了一個,然後服務端的站點就完成了,你可以將這個站點部署到伺服器的IIS裡面,看一下最後運行的結果:

 三、NuGet客戶工具打包和發佈程式包到剛剛搭建的NuGet伺服器上與其他開發者共用程式包

1、首先我們得安裝NuGet客戶端工具,我的Visual Studio 2015是自帶的(我選擇了完全安裝模式),如果你的沒有那麼可以到nuget上下載安裝包,安裝包的下載地址:https://www.nuget.org/

 

 2、將程式集打包

在打包之前先要創建一個打包清單文件.nuspec, 你可以從頭到尾手動創建打包清單,或者輸入下麵的命令進行創建:

nuget spec

其更多選項可以參考其官方文檔:https://docs.nuget.org/ndocs/tools/nuget.exe-cli-reference#spec

這個命令你可以在visual studio的程式包管理控制台裡面執行,也可以在cmd裡面執行,但都需要路由到需要打包的項目目錄下運行,如圖:

 

 

 我先把它改名為dogstar.nuspec,然後你可以使用任何文本編輯器來打開這個文件,如圖:

 

 

在這裡我簡單介紹一下下麵的的幾個元素,其他更多請參照官方文檔(https://docs.nuget.org/ndocs/schema/nuspec)

id:程式包的唯一標識符

version:發行版本號

description:程式包的功能詳細說明

releaseNotes:本次發行的版本有那些主要變更,例如:修複bug,支持全文檢索

dependencies:此程式包依賴於哪些Nuget上的程式包

files:包含程式集文件和內容文件

程式集文件的目標根目錄必須是lib,如:target="lib" 或者 target="lib\net40",lib目錄下的文件將會安裝到目標項目的bin目錄下

內容文件的目標根目錄必須是content,如:target="content\scripts" 或者 target="content\theme\css",content目錄下的所有文件和文件夾都會被安裝到目標項目下的根目錄下

這裡需要提醒一下的就是路徑不可以用“/”分隔符,必須使用“\"分隔符

exclude屬性指定不包括的文件;

關於files節點的更多內容請參照官方文檔:https://docs.nuget.org/ndocs/schema/nuspec#including-assembly-files

文件清單創建完畢之後,執行下麵的命令進行打包:

nuget pack dogstar.nuspec

 

 執行命令之後會生成一個 dogstar.1.0.0.nupkg 文件,這裡你會看到一堆的警告,其實打包還有可以用visual studio的項目文件(*.csproj)進行打包,具體操作請參照官方文檔:https://docs.nuget.org/ndocs/create-packages/creating-a-package#creating-the-package

到此為止打包的步驟就已經完成了,下麵介紹發佈到nuget伺服器上的操作

3、將nuget包發佈到伺服器上

發佈的操作相當簡單,其實在前面的第二部分的Nuget伺服器站點搭建完成之後運行站點後的那個效果圖裡面就已經將方法輸出來了,請看下麵的命令:

nuget push dogstar.1.0.0.nupkg 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a -Source http://localhost:27928/api/v2/package

 

 四、驗證結果

NuGet服務端站點和客戶端打包發佈都已經介紹玩了,現在回到nuget管理程式包裡面驗證一下結果,在驗證結果之前,首先添加程式包源的設置,如圖:

 

然後在程式包源的下拉中選擇client test 將會看到我們剛剛發佈的dogstar程式包,如圖:

 

 ok,馬上點擊安裝看一下

 

 

 

打包的文件已經正確安裝到測試項目裡面,驗證結果成功!

 


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

-Advertisement-
Play Games
更多相關文章
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...