如何使用 .NET CLI 建立 NuGet 套件

注意

下圖顯示使用 Unix 的命令列範例。 此處顯示的 dotnet pack 命令,運作運作方式與在 Windows 上如出一轍。

.NET Standard 和 .NET Core 程式庫預期以 NuGet 封裝方式散發。 實際上,所有的 .NET 標準程式庫都是以這種方式散發及取用。 dotnet pack 命令最容易完成此作業。

假設您剛寫完酷炫的新程式庫,希望透過 NuGet 散發。 而使用跨平台工具建立 NuGet 套件,即可完成這項作業! 下列範例假設名稱為 SuperAwesomeLibrary 的程式庫以 netstandard1.0 為目標。

若您有可轉移的相依性,也就是相依於另一個套件的專案,請務必先使用 dotnet restore 命令還原整個解決方案的套件,再建立 NuGet 套件。 若未完成這項操作,將會導致 dotnet pack 命令無法正常運作。

您不需要執行 dotnet restore,因為系統會隱含執行需要還原的所有命令,例如 dotnet newdotnet builddotnet rundotnet testdotnet publishdotnet pack。 若要停用隱含還原,請使用 --no-restore 選項。

dotnet restore 命令在適合進行明確還原的特定案例中仍可派上用場,例如 Azure DevOps Services 中的持續整合組建,或在需要明確控制何時進行還原的組建系統中。

如需了解如何管理 NuGet 摘要,請參閱 dotnet restore 文件

在確定封裝還原後,您可以瀏覽至程式庫所在的目錄︰

cd src/SuperAwesomeLibrary

然後,只要從命令列發出單一命令︰

dotnet pack

現在您的 /bin/Debug 資料夾看起來如下:

$ ls bin/Debug
netstandard1.0/
SuperAwesomeLibrary.1.0.0.nupkg
SuperAwesomeLibrary.1.0.0.symbols.nupkg

這會產生可供偵錯的套件。 如果想要建置具有版本二進位檔案的 NuGet 套件,您只需要新增 --configuration (或 -c) 參數,並使用 release 作為引數。

dotnet pack --configuration release

您的 /bin 資料夾便具有 release 資料夾,包含二進位版的 NuGet 套件:

$ ls bin/release
netstandard1.0/
SuperAwesomeLibrary.1.0.0.nupkg
SuperAwesomeLibrary.1.0.0.symbols.nupkg

現在您有發行 NuGet 封裝所需的檔案!

請勿混淆 dotnet packdotnet publish

請務必注意,和 dotnet publish 命令一點關係都沒有。 dotnet publish 命令是要使用相同組合中的所有相依性來部署應用程式,不是用來產生要透過 NuGet 散發及使用的 NuGet 封裝。

另請參閱