dotnet publish self-contained runtime not found (RID) in CI
A self-contained publish needs a Runtime Identifier that maps to an available runtime pack. When the RID is misspelled, unsupported by the SDK, or its runtime pack is not restorable, publish fails because it cannot assemble a self-contained app for that platform.
What this error means
The publish step fails resolving the RID (e.g. NETSDK1083 "The specified RuntimeIdentifier X is not recognized") or cannot restore the runtime pack. It reproduces every run for that RID.
dotnet
error NETSDK1083: The specified RuntimeIdentifier 'linux-x65' is not recognized.Common causes
A misspelled or unsupported RID
The -r/RuntimeIdentifier value is wrong (typo) or not supported by the SDK version, so no runtime pack matches.
The runtime pack cannot be restored
The feed lacks the runtime pack for that RID, or restore did not pull it before publish.
How to fix it
Use a valid RID and restore its pack
- Use a supported RID (e.g.
linux-x64,win-x64,osx-arm64). - Ensure restore can reach nuget.org for the runtime pack, then publish self-contained.
- Re-run.
shell
dotnet publish -c Release -r linux-x64 --self-contained trueHow to prevent it
- Reference the RID catalog rather than typing RIDs from memory.
- Keep the SDK new enough to support the RIDs you publish for.
Related guides
dotnet "NETSDK1083: runtime identifier not recognized" in CIFix dotnet "NETSDK1083: The specified RuntimeIdentifier <rid> is not recognized" during publish in CI - an in…
dotnet "NETSDK1112: RID-specific publish requires restore" in CIFix dotnet publish "NETSDK1112: The runtime pack for ... was not downloaded" / RID-specific restore errors in…
dotnet pack missing PackageId in CIFix dotnet pack producing a package with a wrong/missing PackageId (or NU5017/empty id) in CI - the package i…