Nuget(BagGet)使用教程


Nuget(BagGet)使用教程

1. 服務器安裝ASP.NET Core

網上有很多教程,不多講,鏈接給你:https://www.cnblogs.com/Agui520/p/8331499.html

只需要安裝SDK和Runtime即可。安裝成功在命令窗口界面輸入命令“dotnet -v”便可看到下面內容。

2. 部署BagGet環境

接着我們就部署環境了。服務器當然要裝IIS。這就不會廢話了。
安裝教程:
server2008:https://www.cnblogs.com/luckly-hf/p/4073657.html
server2012:https://jingyan.baidu.com/article/90895e0ffb5c1764ec6b0bbb.html

正題:

  • 添加應用程序池(BagGet是Core,所以應用程序池的托管模式為“無托管代碼”)

enter description here

  • 添加網站(Core的默認端口為5000,所以我們這邊端口設置為5000,防火牆若是開啟狀態,請開放5000端口)

enter description here

enter description here

3. 上傳包

上傳包我們使用官方的上傳工具 下載地址:https://github.com/NuGetPackageExplorer/NuGetPackageExplorer

  • 上傳描述

    1. 我們下載下來打來軟件。"Ctrl+N"創建新包
      enter description here

    2. 接着我們就是看到如下,需要我們填下包的描述
      enter description here
      enter description here
      我們來看下這些包描述
      必填(前面四項)

      • id:不區分大小寫的包標識符,在 nuget.org 或包駐留的任意庫中必須是唯一的。 ID 不得包含空格或對 URL 無效的字符,通常遵循 .NET 命名空間規則。

      • version:遵循 major.minor.patch 模式的包版本。 版本號可能包括預發布后綴,如包版本控制中所述。

      • description:用於 UI 顯示的包的詳細說明。

      • authors:作者。

      • title:明了易用的包標題,通常用在 UI 顯示中,如 nuget.org 上和 Visual Studio 中包管理器上的那樣。 如果未指定,則使用包 ID。

      • owners :包擁有者,使用 nuget.org 上的配置文件名稱的包創建者的逗號分隔列表。

      • projectUrl:包的主頁 URL,通常顯示在 UI 中以及 nuget.org 中。

      • licenseUrl:許可證Url。

      • iconUrl: 64x64 透明背景圖像的 URL,用作 UI 顯示中包的圖標。 請確保此元素包含直接圖像 URL,而不是包含圖像的網頁的 URL。

      • requireLicenseAcceptance: 一個布爾值,用於指定客戶端是否必須提示使用者接受包許可證后才可安裝包。

      • developmentDependency:一個布爾值,用於指定包是否被標記為僅開發依賴項,從而防止包作為依賴項包含到其他包中。

      • summary 用於 UI 顯示的包的簡要說明。 如果省略,則使用 description 的截斷版本。

      • releaseNotes: 此版本包中所作更改的說明,通常代替包說明用在 UI 中,如 Visual Studio 包管理器的“更新”選項卡。

      • copyright:包的版權詳細信息。

      • language:包的區域設置 ID。

      • tags:以空格分隔的標記和關鍵字列表,描述包並通過搜索和篩選輔助包的可發現性。

      • serviceable: 可維護性,僅限內部使用。

      • minClientVersion: 指定可安裝此包的最低 NuGet 客戶端版本,並由 nuget.exe 和 Visual Studio 程序包管理器強制實施。

      • dependencies:零個或多個 元素的集合,用來指定包的依賴項。 每個 dependency 都具有 id、version、include (3.x+) 和 exclude (3.x+) 特性。(點擊進去可看到下圖,再點擊下圖紅框進入下下圖,可根據包源地址進行篩選)

      • frameworkAssemblies : 零個或多個 元素的集合,用來標識此包要求的 .NET Framework 程序集引用,從而確保引用添加到使用該包的項目。

    目前經常用的差不多這些 填寫完畢就可以看到下面內容

  • 添加要上傳的內容

    在工具的右邊右擊就可以添加給各類東西
    enter description here

    • build:輸出到bin目錄
    • content:原樣拷貝
    • lib:添加引用
    • src:源碼拷貝
    • tools:工具?

    enter description here

    ps:上圖可以看下lib的引用的dll信息,這些信息可在vs里面進行設置,包括強簽名等。

    enter description here

  • 上傳流程

    全部工作准備好了,選擇菜單“File”,savesavsAs是保存到本地,我們選擇publish
    ps:上傳需要注冊,並拿到key。注冊教程(這篇文章內容只關注如何獲取key):https://blog.csdn.net/wangwenru6688/article/details/50276405

    enter description here
    上傳成功后,我們就可以在我們BagGet的web看到我們上傳好的包了。

    enter description here
    這樣,我們就將nuget包上傳到我們自己的服務器了。(同個包不同版本的id應該是一樣的
    enter description here

4. 項目引用包

接下來,我們要怎么去引用這樣些nuget包呢?

  1. 首先要先添加我們自己服務器的nuget包源。
    工具=>選項=>nuget包管理器=>程序包源=>新增一條(http://192.168.101.188:5000/v3/index.json)=>點擊更新
    enter description here

  2. 選中要引用包的項目(類庫)進入nuget包管理器(怎么進的,就不解釋了,自己百度去)。就可以看到我們上傳的包,按照平常那樣引用或者更新就可以了。(**當然你熟悉引用命令也可以直接用命令引用(原本命令與core命令都可以用),具體就不解釋了,附上教程:https://www.cnblogs.com/zhaogaojian/p/8398531.html

    enter description here

  3. 我們看下我們引用的包會在哪?

    1. 首先dll肯定在引用里面了

    2. 作為content原樣復制,它是在根目錄了

    3. 其他的我發現都在我們項目目錄底下的“packages”的相對應的目錄底下

5. 刪除包

ps:若是我們上傳同樣的包或是怎么樣的呢?這邊會報409的狀態異常的錯誤包,上傳工具並不會提醒你上傳失敗,或者已有此包。

所以我們若是要重新上傳或更新已有的版本,或者上傳錯誤,想要刪除肯定要刪除我們已經上傳的包。但是我發現大佬只做了接口,並沒有集成在頁面,頁面是用來node.js和React,表示是個前端渣,但不懂,不懂得修改,所以就自己做了個winform來刪除包源。

但是要注意下,這邊大佬是分軟刪除硬刪除的,軟刪除只是網頁看不見了,但其實你知道包id還是同樣可以引用,更坑的是,軟刪除,nuget管理器還是可以看到你的包。硬刪除就是大家所理解的將包真的刪除掉了。
那么如何開啟呢,BagGet采用的是Core,所以配置項並不是在Web.config中,而是appsettings.json,只需要在配置加上這句話,就成了硬刪除了,若是要軟刪除,就去掉這句話。

"PackageDeletionBehavior":"HardDelete" ,

那附上我自己寫的刪除winform吧。

鏈接: https://pan.baidu.com/s/1bLQ_GTh92wr0Vt9z7JhsPQ 提取碼:
db69

截圖

  1. 先填好BagGet的服務器,只需要修改ip即可,再填好NuGetKey,當然你要是想保存在程序里,可以選擇保存
    enter description here

  2. 接着刷新,下面的樹就會刷新出來,你的nuget服務器上的程序包,以及版本
    enter description here

  3. 選中版本,選中包的信息與要刪除的版本就會出現右邊,然后點擊刪除就可以了。
    enter description here

enter description here


免責聲明!

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



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