續上篇,預設 Nexus 建立後,預設就支援 nuget,不用作太多的設定就可以上傳 nuget package
開發環境
- Windows 11 Home
- Rider 2024.2.7
- Nexus 3.74.0.05
配置 NuGet
取得 nuget-hosted 位置
http://localhost:8081/repository/nuget-hosted/
配置 NuGet-hosted
Deployment policy
預設為 "Allow redeploy",我會改成 "Disable redeploy"
Realms
啟用 NuGet API-Key
設定 NuGet API Key
nuget setapikey ab3f95a8-280a-376c-807b-e205c24a2c09 -source http://localhost:8081/repository/{repository name}/
API Key 要保存好,關掉畫面就不會再出現了
上傳 NuGet package
建立 Library 專案
在 Lab.Nexus.Docker 路徑下,新增一個 Class Library 專案,名為 Lab.Nexus.Docker.Library
寫了一段沒有甚麼用的碼
public class Message
{
public string GetMessage()
{
return "Hello from the library!";
}
}
打包 Library - dotnet pack
用 Windows Terminal 切到 Lab.Nexus.Docker.Library 專案目錄下,執行以下命令
dotnet pack --include-symbols -c Release /p:PackageVersion=1.0.2 -o ./app
PowerShell 7.4.6
PS D:\lab\sample.dotblog\Docker\Lab.Nexus.Docker\Lab.Nexus.Docker.Library> dotnet pack --include-symbols -c Release /p:PackageVersion=1.0.2 -o ./app
正在判斷要還原的專案...
已還原 D:\lab\sample.dotblog\Docker\Lab.Nexus.Docker\Lab.Nexus.Docker.Library\Lab.Nexus.Docker.Library.csproj (44 毫秒 內)。
Lab.Nexus.Docker.Library -> D:\lab\sample.dotblog\Docker\Lab.Nexus.Docker\Lab.Nexus.Docker.Library\bin\Release\net8.0\Lab.Nexus.Docker.Library.dll
套件 Lab.Nexus.Docker.Library.1.0.2 遺漏讀我檔案。請移至 https://aka.ms/nuget/authoring-best-practices/readme 以了解套件讀我檔案很重要的原因。
已成功建立封裝 'D:\lab\sample.dotblog\Docker\Lab.Nexus.Docker\Lab.Nexus.Docker.Library\app\Lab.Nexus.Docker.Library.1.0.2.nupkg'。
已成功建立封裝 'D:\lab\sample.dotblog\Docker\Lab.Nexus.Docker\Lab.Nexus.Docker.Library\app\Lab.Nexus.Docker.Library.1.0.2.symbols.nupkg'。
有可用的工作負載更新。如需詳細資訊,請執行 `dotnet workload list`。
PS D:\lab\sample.dotblog\Docker\Lab.Nexus.Docker\Lab.Nexus.Docker.Library>
產生以下檔案
上傳 NuGet package - dotnet nuget push
執行以下命令
dotnet nuget push ./app/Lab.Nexus.Docker.Library.1.0.2.symbols.nupkg --source "http://localhost:8081/repository/nuget-hosted/" --api-key ab3f95a8-280a-376c-807b-e205c24a2c09
PowerShell 7.4.6
PS D:\lab\sample.dotblog\Docker\Lab.Nexus.Docker\Lab.Nexus.Docker.Library> dotnet nuget push ./app/Lab.Nexus.Docker.Library.1.0.2.symbols.nupkg --source "http://localhost:8081/repository/nuget-hosted/" --api-key ab3f95a8-280a-376c-807b-e205c24a2c09
正在將 Lab.Nexus.Docker.Library.1.0.2.symbols.nupkg 推送到 'http://localhost:8081/repository/nuget-hosted/'...
warn : 您正在使用 'HTTP' 來源 'http://localhost:8081/repository/nuget-hosted/' 執行 'push' 作業。未來的版本將移除非 HTTPS 存取。請考慮移轉至 'HTTPS' 來源。
PUT http://localhost:8081/repository/nuget-hosted/
Created http://localhost:8081/repository/nuget-hosted/ 47 毫秒
已推送您的套件。
PS D:\lab\sample.dotblog\Docker\Lab.Nexus.Docker\Lab.Nexus.Docker.Library>
在 nexus 查看 nuget-hosted 裡面的內容
加入 NuGet Source
我習慣在 C:\Users\yao\AppData\Roaming\NuGet 集中設定 nuget source
安裝 NuGet Package
搜尋 Lab.Nexus.Docker.Library 並安裝
以上,順利的把 NuGet Package 推到 nexus 了
若有謬誤,煩請告知,新手發帖請多包涵
Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET