减少.NET编译为Wasm的占用空间

Fir*_*Dib 6 .net c# mono webassembly

我正在使用Mono将C#编译为Wasm,以便在浏览器中使用它。运行以下命令会生成一堆DLL,一个wasm文件和一些JS文件。

csc /target:library -out:regex101.dll \
    /noconfig /nostdlib \
    \
    /r:$WASM_SDK/wasm-bcl/wasm/mscorlib.dll \
    /r:$WASM_SDK/wasm-bcl/wasm/System.dll \
    /r:$WASM_SDK/wasm-bcl/wasm/Facades/netstandard.dll \
    /r:$WASM_SDK/framework/WebAssembly.Bindings.dll \
    \
    regex101.cs

mono $WASM_SDK/packager.exe \
    --copy=always --out=./publish \
    regex101.dll
Run Code Online (Sandbox Code Playgroud)

如果将这些生成的js文件包含在网页中,则可以在浏览器中运行已转换的代码。但是,最终的大小(大约23个dlls + JS + Wasm)总共约为15mb,这非常大,我相信这是因为没有运行消除死代码的情况,并且包含了框架的很大一部分。

建议我运行一个链接器(请参阅https://github.com/firasdib/Regex101/issues/156#issuecomment-497281517)以执行无效代码消除,但是作为我的.NET新手,我不知道。不知道该怎么做。

任何帮助将非常感激。