Skip to content

Add C#/.NET language support (pending tooling maturity) #34

@richardkiene

Description

@richardkiene

Summary

Add C#/.NET language builder support using componentize-dotnet once the tooling stabilizes.

Current Status

The .NET WASI ecosystem is currently experimental:

  • Microsoft removed the wasi-experimental workload from .NET 9 (February 2025)
  • .NET 10 does not include native WASI support
  • The only option is componentize-dotnet from Bytecode Alliance
  • Setup requires experimental NuGet feeds and platform-specific packages
  • Path handling bugs exist in the current tooling

Why Deferred

During implementation of #31, we found:

  1. Complex setup: Requires experimental NuGet feed (dotnet-experimental)
  2. Platform-specific packages: Need different ILCompiler packages per OS
  3. Configuration heavy: Many .csproj properties required
  4. Tooling bugs: Path handling issues (Windows paths on macOS)
  5. Uncertain future: Microsoft appears to have deprioritized WASI

When to Revisit

Monitor these for stability:

  • componentize-dotnet releases
  • .NET 11+ WASI support announcements
  • Microsoft's WASI tracking issues moving back to active milestones

Implementation Notes

When ready, the builder should:

  • Check for .NET SDK 9.0+
  • Use dotnet build with componentize-dotnet SDK
  • Find WASM output in bin/<config>/net<version>/wasi-wasm/
  • Provide clear error messages about experimental NuGet feed requirements

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions