最輕便的釋出nuget包方式,方便cicd自動打包釋出nuget包
首先新建專案
專案名隨便取,這裡就叫它GuiH.ClassLibrary
預設即可,需要改目標版本時,等建立好再改
專案建立好了
隨便寫個介面方法
namespace GuiH.ClassLibrary
{
public class Class1
{
public static void Test()
{
Console.WriteLine("Hello Nuget!!!");
}
}
}
接下來修改工程檔案,預設情況是這樣的
我們新增下面一些配置
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<!--以下是我們自己新增的-->
<!--版本號,重要性不必多說-->
<Version>1.0.0</Version>
<!--新增該配置,在編譯時進行打包-->
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<!--新增該配置才會生成註釋檔案,預設無註釋-->
<GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>
</Project>
執行編譯命令,根據上面的配置,編譯後會自動進行打包
// 該命令在GuiH.ClassLibrary專案根目錄下執行
dotnet build -c=Release
命令列中也提示了 已成功建立包“E:\工作區\GuiH.ClassLibrary\GuiH.ClassLibrary\bin\Release\GuiH.ClassLibrary.1.0.0.nupkg”
將GuiH.ClassLibrary.1.0.0.nupkg
推送至nuget倉庫,可以自己搭建,也可以是微軟官方nuget倉庫
在www.nuget.org註冊一個賬號,然後獲取apikey
詳細釋出nuget命令參考:dotnet-nuget-push
// $apikey 替換為你的apikey
dotnet nuget push ./bin/Release/GuiH.ClassLibrary.1.0.0.nupkg -k $apikey -s https://api.nuget.org/v3/index.json --skip-duplicate
正在將 GuiH.ClassLibrary.1.0.0.nupkg 推送到 'https://www.nuget.org/api/v2/package'...
PUT https://www.nuget.org/api/v2/package/
warn : All published packages should have license information specified. Learn more: https://aka.ms/deprecateLicenseUrl.
Created https://www.nuget.org/api/v2/package/ 1404 毫秒
已推送包。
搜尋釋出的包(一般會短暫延遲幾分鐘才能搜到),在專案中使用(應該建立一個控制檯測試,知道就好~)
多種目標平臺支援
例如相容framwork4.6.1
,修改工程檔案如下,注意單詞TargetFrameworks
的單複數
// 修改前
<TargetFramework>net6.0</TargetFramework>
// 修改後
<TargetFrameworks>net6.0;net461</TargetFrameworks>
或只支援net461
<TargetFrameworks>net461</TargetFrameworks>
CICD
cicd指令碼中核心的兩條命令就是上述兩個,執行環境安裝相應的sdk(.net5/.net6)即可。