clockworklabs/SpacetimeDB · error · anyhow::Error
dotnet not found in PATH. Please install .NET SDK 8.0 or 10.
Error message
dotnet not found in PATH. Please install .NET SDK 8.0 or 10.0.
What it means
Error "dotnet not found in PATH. Please install .NET SDK 8.0 or 10.0." thrown in clockworklabs/SpacetimeDB.
Source
Thrown at crates/cli/src/tasks/csharp.rs:208
};
}
let native_aot_flag = native_aot;
let project_global_json = find_global_json(project_path);
let cwd = std::env::current_dir()?;
let cwd_global_json = find_global_json(&cwd);
let dotnet_version_result = if project_global_json.is_some() {
Some(dotnet!("--version").read())
} else if cwd_global_json.is_some() {
Some(duct::cmd!("dotnet", "--version").read())
} else {
None
};
let dotnet_version_str = match dotnet_version_result {
Some(Ok(v)) => Some(v),
Some(Err(error)) if error.kind() == std::io::ErrorKind::NotFound => {
anyhow::bail!("dotnet not found in PATH. Please install .NET SDK 8.0 or 10.0.")
}
Some(Err(error)) => anyhow::bail!("{error}"),
None => None,
};
// Resolution order:
// 1. --dotnet-version CLI flag (explicit user override)
// 2. global.json-selected SDK, if one applies to the project or current directory
// 3. Single <TargetFramework> in the project's .csproj
// 4. .NET 10 default for missing or multi-target project context
let csproj_tfms = read_tfms_from_csproj(project_path);
let dotnet_major = dotnet_version_override
.or_else(|| dotnet_version_str.as_deref().and_then(parse_major_version))
.or_else(|| csproj_tfms.as_ref().and_then(CsprojTargetFrameworks::single_major))
.or(Some(10));
// Determine the build path based on SDK version and --native-aot flag.
let build_path = match (dotnet_major, native_aot_flag) {View on GitHub (pinned to 524b4487d9)
When it happens
Trigger: Thrown at crates/cli/src/tasks/csharp.rs:208 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of clockworklabs/SpacetimeDB@524b4487d9 (2026-08-16).
Data as JSON: /api/errors/f138787cb1a5bb58.
Report an issue: GitHub.