dotnet-workload-info

star 162

Discover .NET SDK versions, workload sets, manifest versions, and workload dependencies (Xcode, JDK, Android SDK) from live NuGet APIs. Use when asked about: .NET SDK requirements/versions, workload set versions, workload manifest versions, Xcode version requirements, JDK version requirements, Android SDK packages, or MAUI NuGet package versions. Triggers on questions like "What Xcode is required for .NET 10?" or "What's the latest workload set?"

Redth By Redth schedule Updated 2/2/2026

name: dotnet-workload-info description: Discover .NET SDK versions, workload sets, manifest versions, and workload dependencies (Xcode, JDK, Android SDK) from live NuGet APIs. Use when asked about: .NET SDK requirements/versions, workload set versions, workload manifest versions, Xcode version requirements, JDK version requirements, Android SDK packages, or MAUI NuGet package versions. Triggers on questions like "What Xcode is required for .NET 10?" or "What's the latest workload set?"

.NET Workload Info Discovery

Query live NuGet APIs to discover authoritative .NET SDK versions, workload sets, and dependency requirements.

Inputs

Parameter Required Example Notes
dotnetVersion yes 9.0, 10.0 Major.minor format
prerelease no true/false Default false
workload no ios, android, maui Alias or full id

Workload Aliases

Alias Full ID
ios microsoft.net.sdk.ios
android microsoft.net.sdk.android
maccatalyst microsoft.net.sdk.maccatalyst
macos microsoft.net.sdk.macos
tvos microsoft.net.sdk.tvos
maui microsoft.net.sdk.maui

Discovery Process

Step 1: Get Latest SDK Version

curl -s "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/releases-index.json" | \
  jq '.["releases-index"][] | select(.["channel-version"]=="{MAJOR}.0")'

Extract latest-sdk and derive SDK band:

  • 10.0.102 → band 10.0.100 (hundreds digit)
  • 10.0.205 → band 10.0.200

Step 2: Find Workload Set Package

curl -s "https://azuresearch-usnc.nuget.org/query?q=Microsoft.NET.Workloads.{MAJOR}.0&prerelease=false&semVerLevel=2.0.0"

Filter: Match Microsoft.NET.Workloads.{major}.{band}, exclude .Msi.*, pick highest version.

Version conversion: NuGet 10.102.0 → CLI 10.0.102 (swap middle segments)

Step 3: Download Workload Set Manifest

curl -o workloadset.nupkg "https://api.nuget.org/v3-flatcontainer/microsoft.net.workloads.{band}/{version}/microsoft.net.workloads.{band}.{version}.nupkg"
unzip -p workloadset.nupkg data/microsoft.net.workloads.workloadset.json

Format: "{workload_id}": "{manifestVersion}/{sdkBand}"

Step 4: Download Workload Manifest

Build package id: {WorkloadId}.Manifest-{sdkBand} (e.g., Microsoft.NET.Sdk.iOS.Manifest-10.0.100)

curl -o manifest.nupkg "https://api.nuget.org/v3-flatcontainer/{packageid}/{version}/{packageid}.{version}.nupkg"
unzip -p manifest.nupkg data/WorkloadDependencies.json

Step 5: Parse Dependencies

Android (microsoft.net.sdk.android):

{
  "jdk": { "version": "[17.0,22.0)", "recommendedVersion": "17.0.14" },
  "androidsdk": {
    "packages": ["build-tools;35.0.0", "platform-tools", "platforms;android-35"],
    "apiLevel": "35", "buildToolsVersion": "35.0.0"
  }
}

iOS/macOS (microsoft.net.sdk.ios):

{
  "xcode": { "version": "[26.2,)", "recommendedVersion": "26.2" },
  "sdk": { "version": "26.2" }
}

Version ranges: [17.0,22.0) = >=17.0 AND <22.0; [26.2,) = >=26.2


MAUI NuGet Packages

MAUI packages may be newer than workload versions. Query for latest:

curl -s "https://azuresearch-usnc.nuget.org/query?q=packageid:Microsoft.Maui.Controls&prerelease=false" | \
  jq '.data[0].versions | map(select(.version | startswith("{MAJOR}."))) | last'

Key packages: Microsoft.Maui.Controls, Microsoft.Maui.Essentials, Microsoft.Maui.Graphics

To use newer version than workload:

<PackageReference Include="Microsoft.Maui.Controls" Version="10.0.30" />

Output Format

{
  "dotnetVersion": "10.0",
  "latestSdk": "10.0.102",
  "sdkBand": "10.0.100",
  "workloadSet": { "packageId": "...", "nugetVersion": "10.102.0", "cliVersion": "10.0.102" },
  "workloads": [{
    "workloadId": "microsoft.net.sdk.ios",
    "manifestVersion": "26.2.10191",
    "sdkBand": "10.0.100",
    "dependencies": { "xcode": { "versionRange": "[26.2,)", "recommendedVersion": "26.2" } }
  }],
  "mauiNugets": [{ "packageId": "Microsoft.Maui.Controls", "latestVersion": "10.0.30" }]
}

Error Handling

  • No results → retry with prerelease=true
  • Missing WorkloadDependencies.json → report explicitly
  • Missing dependency key → note which keys absent

Best Practices

  • ALWAYS fetch live data; never hardcode versions
  • ALWAYS include sdkBand with manifest versions
  • Show exact URLs used for transparency

Reference

See references/workload-discovery-process.md for detailed NuGet API documentation and complete examples.

Install via CLI
npx skills add https://github.com/Redth/MAUI.Sherpa --skill dotnet-workload-info
Repository Details
star Stars 162
call_split Forks 15
navigation Branch main
article Path SKILL.md
More from Creator