C#【必備技能篇】製作NuGet套件,並發佈到NuGet官網

C#【必備技能篇】製作NuGet套件,並發佈到NuGet官網

非常詳細的教學

最後更新 2023/10/10 下午1:28
明如正午
預計閱讀 4 分鐘
分類
.NET
標籤
.NET C# NuGet

1. 準備工作:在 NuGet 上建立並取得 API Keys

網址:https://www.nuget.org/

1.1. 首先需要登入,直接用微軟帳戶登入即可

1.2. 點擊右上角選單 API Keys,建立 Key

1.3. 填寫資訊並建立

這裡寫你要上傳 NuGet 套件的名稱 【每個 NuGet 套件(對應一個名稱)可以上傳多個版本】

1.4. 複製 API Key

2. 製作一個簡單的 dll

新增一個「程式庫」專案,程式碼如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ClassLibrary1
{
    public class Class1
    {
        public static int Add(int a, int b)
        {
            return a + b;
        }
        public static int Sub(int a, int b)
        {
            return a - b;
        }
    }
}

框架使用 .NET Framework 4.6.1,這個在後面也會使用到,輸出類型使用類別庫:

產生如下 dll:

3. 建立發佈資料夾

為了更好管理檔案,在 E:\nuget\新建MyPackage_Star302Test 資料夾,存放所需的檔案

4. 上傳 NuGet 套件並發佈

4.1. 方法一:使用命令列上傳,需要下載 nuget.exe

4.1.1. 到 https://www.nuget.org/downloads 下載 nuget.exe

4.1.2. 設定 nuget 環境變數

  • 把下載的 nuget.exe 放到 E:\nuget
  • 打開電腦屬性–進階系統設定–環境變數–系統變數,選擇 Path–編輯–新增–填寫 E:\nuget,確定

環境變數設定好,就可以使用 nuget 指令了

4.1.3. 產生 nuspec 檔案

使用 nuget spec 命令產生 .nuspec 檔案

.nuspec 檔案中的內容為 xml 格式,如下,可以簡單了解:

更改後的內容為:

<?xml version="1.0" encoding="utf-8"?>
<package >
  <metadata>
    <id>PackageTest</id>
    <version>1.0.0</version>
    <authors>Star302</authors>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <license type="expression">MIT</license>
    <!-- <icon>icon.png</icon> -->
    <projectUrl>http://project_url_here_or_delete_this_line/</projectUrl>
    <description>Package description</description>
    <releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
    <copyright>$copyright$</copyright>
    <tags>Tag1 Tag2</tags>
    <dependencies>
      <group targetFramework=".NETStandard2.1">
        <dependency id="SampleDependency" version="1.0.0" />
      </group>
    </dependencies>
  </metadata>
</package>

4.1.4. 產生 nupkg 檔案

使用 nuget pack 命令產生 .nupkg 檔案

4.1.5. 複製 1.4 的 API Key,上傳到 NuGet

執行如下指令:

nuget push PackageTest.1.0.0.nupkg xxxkey -Source https://api.nuget.org/v3/index.json

【我試了幾次都沒成功,不知道為什麼】

4.2. 方法二:使用介面工具上傳,需要下載 NuGet Package Explorer【推薦!】

4.2.1. 下載 NuGet Package Explorer

https://www.microsoft.com/zh-tw/p/nuget-package-explorer/9wzdncrdmdm3?activetab=pivot:overviewtab

4.2.2. 建立新 Package

4.2.3. 新增 lib 資料夾、新增 net461 資料夾、加入現有檔案

4.2.4. 編輯上傳資料

這裡選擇 Edit Metadata,Edit Metadata Source 則是 xml 檔案格式的

更改一些參數:

新增專案相依性,即相依哪些架構。比如 .NETFramework、.NETStandard 等

最後,點擊確認

編輯完成,看下效果

看一下 Metadata Source 對應的內容,其實和剛剛編輯的資訊是一致的。

4.2.5. 儲存 nupkg 檔案

4.2.6. 發佈到 NuGet

發佈成功:

在 Visual Studio 中檢視:

5. NuGet 套件的管理

自己到 https://www.nuget.org/ 探索一下就好,很簡單的。

參考:https://blog.csdn.net/weixin_38211198/article/details/118438071

版權聲明:本文為 CSDN 部落格作者「明如正午」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連結及本聲明。

原文連結:https://blog.csdn.net/sinat_40003796/article/details/130407108

繼續探索

延伸閱讀

更多文章
同分類 / 同標籤 2025/5/24

你好 .NET run file,再見 csproj

這篇文章介紹了.NET CLI的檔案式程式新特性,它允許開發者直接執行C#原始檔而無需建立專案檔。該特性透過在記憶體中產生虛擬專案檔,並支援NuGet依賴套件和專案屬性設定,為開發指令碼和簡單應用提供了便捷。文章還展望了該特性的未來發展方向,包括目標路徑擴充、統一命令列參數、效能提升和更多檔案式程式命令支援等。

繼續閱讀