Quiero poder llamar al código C# desde JavaScript. El proyecto mono solía tener un SDK de WASM que podía descargar de su antiguo servidor Jenkins, pero ya no es público. Los documentos existentes tienden a apuntar hacia esas compilaciones. Las compilaciones de Azure Devops no incluyen este SDK. Algunos mensajes que he visto en su cuenta de Github indican que ahora se están enfocando en .NET 6 para WASM. No deseo utilizar los componentes de Blazor. ¿Hay alguna forma en .NET 6 de crear un binario WASM de tamaño mínimo sin la interfaz de usuario de Blazor?
Sí, es absolutamente posible. Blazor no tiene el monopolio de C#/WASM y no está nada claro que terminará siendo la mejor opción a largo plazo (y hay mucha evidencia de que no lo es).
Recomiendo comenzar con Uno WASM Bootstrap. https://github.com/unoplatform/Uno.Wasm.Bootstrap
Mono WASM SDK continúa en el repositorio dotnet/runtime. Las herramientas basadas en el antiguo Packager.exe se han convertido en una solución basada en MSBuild/csproj:
https://github.com/dotnet/runtime/tree/main/src/mono/wasm
muestras: https://github.com/dotnet/runtime/tree/main/src/mono/sample/wasm
El problema clave cuando trato de usar código en un proyecto personalizado (no dentro de la muestra) es que necesitamos hacer referencia a un ensamblado privado System.Private.Runtime.InteropServices.JavaScript.dll que se incluye en Microsoft.NETCore.App.Runtime .navegador-wasm . El código es casi el mismo que WebAssembly.Bindings.dll en el viejo mono wasm sdk.
Aquí hay una captura de pantalla de una página WebGL que creé, basada en dotnet/runtime/mono/wasm: 
Por cierto, hay un punto de vista de que el rendimiento de implementar WebGL llamando a funciones de JavaScript desde C# es malo: https://marcoscobena.com/?i=wave-engine-web-performance
NativeAOT-LLVM, un compilador experimental de C# no compatible oficialmente con Microsoft ( https://github.com/dotnet/runtimelab/tree/feature/NativeAOT-LLVM ) también puede compilar C# en Wasm sin ningún requisito de marco de interfaz de usuario. Hay una pregunta similar sobre las bibliotecas en Compilación del proyecto C# en WebAssembly