clockworklabs/SpacetimeDB · error · anyhow::Error

Looks like your project is using the deprecated .NET 7.0 Web

Error message

Looks like your project is using the deprecated .NET 7.0 WebAssembly bindings.
Please migrate your project to the new .NET 8.0 template and delete the folders: bin, bin~, obj, obj~

What it means

Error "Looks like your project is using the deprecated .NET 7.0 WebAssembly bindings. Please migrate your project to the new .NET 8.0 template and delete the folders: bin, bin~, obj, obj~" thrown in clockworklabs/SpacetimeDB.

Source

Thrown at crates/cli/src/tasks/csharp.rs:425

        target_framework.into(),
        "-v".into(),
        "quiet".into(),
    ]);
    if matches!(build_path, CsharpBuildPath::Net8Aot | CsharpBuildPath::Net8Jit) {
        publish_args.push("--no-restore".into());
        publish_args.push("--force".into());
        publish_args.push(format!("-p:{target_frameworks_override}").into());
    }
    duct::cmd("dotnet", publish_args).dir(project_path).run()?;

    // check for the old .NET 7 path for projects that haven't migrated yet
    let bad_output_paths = [
        project_path.join(format!("bin/{config_name}/net7.0/StdbModule.wasm")),
        // for some reason there is sometimes a tilde here?
        project_path.join(format!("bin~/{config_name}/net7.0/StdbModule.wasm")),
    ];
    if bad_output_paths.iter().any(|p| p.exists()) {
        anyhow::bail!(concat!(
            "Looks like your project is using the deprecated .NET 7.0 WebAssembly bindings.\n",
            "Please migrate your project to the new .NET 8.0 template and delete the folders: bin, bin~, obj, obj~"
        ));
    }
    let possible_output_paths = [
        // Standard publish output paths (JIT and some AOT builds)
        project_path.join(format!(
            "bin/{config_name}/{target_framework}/wasi-wasm/{subdir}/StdbModule.wasm"
        )),
        project_path.join(format!(
            "bin~/{config_name}/{target_framework}/wasi-wasm/{subdir}/StdbModule.wasm"
        )),
        // NativeAOT-LLVM outputs to 'native' subdirectory instead of 'publish'
        project_path.join(format!(
            "bin/{config_name}/{target_framework}/wasi-wasm/{subdir}/StdbModule.wasm"
        )),
        project_path.join(format!(
            "bin~/{config_name}/{target_framework}/wasi-wasm/{subdir}/StdbModule.wasm"

View on GitHub (pinned to 524b4487d9)

When it happens

Trigger: Thrown at crates/cli/src/tasks/csharp.rs:425 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/74b4700654b49a8f. Report an issue: GitHub.