Я использую 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
Если я включу эти результирующие js-файлы в веб-страницу, я смогу нормально запустить переносимый код в браузере.Тем не менее, итоговый размер (около 23 dll + JS + Wasm) в общей сложности составляет около 15 МБ, что очень много, и я считаю, что это происходит потому, что не выполняется удаление мертвого кода, и в него включаются большие куски фреймворка.
Мне порекомендовали запустить компоновщик (см. https://github.com/firasdib/Regex101/issues/156#issuecomment-497281517), чтобы выполнить удаление мертвого кода, но, будучи новичком .NET, я не знаю, как это сделать.
Любая помощь будет высоко ценится.