- ติดตั้ง Cake ผ่าน .NET global tool
dotnet tool install -g cake.tool
2. สร้างโปรเจค Library
dotnet new library --output src/HelloLibrary
3. เพิ่ม Metadata ของโปรเจคไว้ในไฟล์ Directory.Build.props โดยต้องใช้ PackageId ที่ไม่ซ้ำกับแพ็คเกจใน nuget.org
<Project>
<PropertyGroup>
<PackageId>wk.HelloLibrary</PackageId>
<Version>0.1.0</Version>
<PackageTags>Hello</PackageTags>
<Description>Hello library</Description>
<authors>wk-j</authors>
<owners>wk-j</owners>
</PropertyGroup>
</Project>
4. เขียนสคริป Cake ตั้งชื่อไฟล์ว่า build.cake
var project = "src/HelloLibrary/HelloLibrary.csproj";
var publishDir = "publish";Task("Pack").Does(() => {
CleanDirectory(publishDir);
DotNetCorePack(project, new DotNetCorePackSettings {
OutputDirectory = publishDir
});
});Task("Publish")
.IsDependentOn("Pack")
.Does(() => {
var apiKey = EnvironmentVariable("NAPI");
var nupkg = new System.IO.DirectoryInfo(publishDir)
.GetFiles("*.nupkg").LastOrDefault();
var package = nupkg.FullName;
NuGetPush(package, new NuGetPushSettings {
Source = "https://www.nuget.org/api/v2/package",
ApiKey = apiKey
});
});var target = Argument("target", "Pack");
RunTarget(target);
ในสคริปต์มีการใช้ NuGet API key ดังนั้นต้อง Generate key และเก็บเป็น Environment variable ในเครื่อง ตามตัวอย่างจะเก็บไว้ในตัวแปรชื่อ NAPI
5. Publish แพ็คเกจขึ้น Server ด้วยคำสั่ง dotnet cake -target=Publish
6. เข้าไปหน้า Manage package ใน nuget.org
จะเห็นแพ็คเกจ ชื่อ wk.HelloLibrary โดยต้องรอให้ Server validate และทำ Index ประมาณ 10–15 นาที จึงสามารถค้นหาและติดตั้งผ่าน NuGet client ได้