Docs menu
Runtime versions
Which .NET SDK versions Primcloud supports, how to pin a specific one via TargetFramework or global.json, and how to upgrade.
On this page
Primcloud installs the .NET SDK your project asks for, resolved from the TargetFramework in your project files. If you don't ask for anything specific, you get the latest patch of the highest supported major.
Supported versions#
The .NET versions you can install are part of the Primcloud Runtime and move as the Runtime is updated. The build log for each deployment, in the Deployments tab, shows the version that build installed. The supported frameworks run from .NET 8.0 up, with .NET 10 the latest. The table below is an illustrative snapshot, not a fixed contract:
| Major | TFM | Support tier | Latest patch (snapshot) |
|---|---|---|---|
| .NET 8 | net8.0 |
LTS | 8.0.425 |
| .NET 9 | net9.0 |
STS | 9.0.318 |
| .NET 10 | net10.0 |
LTS | 10.0.401 |
Support tiers and long-term-support timelines follow Microsoft's .NET support policy. New SDK patch releases become available as Microsoft ships them and the Primcloud Runtime is updated.
Pinning a version#
Two mechanisms decide which SDK gets installed. In order of precedence:
1. global.json: the most explicit. Drop a global.json at the root of your repo:
{
"sdk": {
"version": "8.0.423",
"rollForward": "latestFeature"
}
}
rollForward controls how strictly version is matched. Common values:
disable: install exactlyversion; fail if it isn't in the inventory.latestPatch: take the latest patch within the same major/minor/feature band.latestFeature: take the latest feature band within the same major/minor.latestMajor: install the latest major, ignoringversion.
See Microsoft's global.json reference for the full policy set.
2. TargetFramework in your project files, used when there's no global.json. Primcloud picks the latest available SDK matching the framework version:
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
</PropertyGroup>
If a solution contains projects targeting different framework versions, Primcloud picks the SDK matching the highest version.
3. No configuration: you get the latest patch of the highest supported major.
Upgrading#
Bump the pin and redeploy:
global.json: editversion(and adjustrollForwardif you want to lock more or less strictly), commit, push.TargetFramework: edit the<TargetFramework>value in each project file (net8.0→net10.0, say), commit, push.
The next build pulls the newer SDK, cached from the first time it's used. If the upgrade crosses a major version boundary, expect one longer build while the SDK is downloaded, then normal speed from the next deploy.
Review Microsoft's .NET breaking changes before jumping majors. Primcloud won't stop you from installing an SDK that produces build errors on your code.
When a version drops out of support#
When a major goes end-of-life on Microsoft's schedule, the Primcloud Runtime eventually stops shipping new patches for it and may remove the version in a later update. Before that happens:
- Builds targeting the EOL version keep working until the version is dropped from the inventory.
- Once dropped, builds that pin the removed version via
global.jsonfail with a "version not found" error. - Builds that use
TargetFrameworkwithout aglobal.jsoncontinue, resolving to the next-highest supported major automatically. This may or may not compile depending on your code.
Bump to a supported major before the EOL date to avoid a forced upgrade under time pressure.