Возникла проблема. Не могу понять, как ее решить. Пытаюсь с помощью .NET 8 AOT опубликовать свое приложение через Avalonia WebAssembly:
$ dotnet publish -c Release
Есть разные под-проекты. В итоговом проекте есть включенная опция RunAOTCompilation и только в нем.
Сам код рабочий. В браузере все работает. Однако меня сильно смущает следующий момент.
Как будто после AOT некоторые файлы сборок, относящиеся к самой Авалонии, изменили размер (по маске *.wasm). Сильно распух файл dotnet.native.wasm до 45 мегабайт. Но мои собственные файлы, похоже, что вообще не меняются в размере, компилирую я c AOT или без. Причем в каталоге obj есть следы работы Emscripten по моим файлами, да и в консоли это видно во время сборки. Сам процесс публикации заметно дольше происходит с AOT. Речь о каталоге bin/Release/net8.0-browser/publish/wwwroot/_framework.
Что не так-то? Не могу удостовериться, что AOT прошелся по моим файлам сборок *.wasm.
Причем аналогичный десктопный клиент собирается через AOT. Там, буквально, получается один исполняемый файл и две авалоновские динамические библиотеки. Там работает все ожидаемо. А здесь не ожидаемо, хотя и работает.
Может быть, подскажите, как должно быть? Или укажите, где я недопонимаю? Есть еще версия, что такая связка .NET AOT с Avalonia WebAssembly просто необкатана.
P.S. Пытался еще задействовать Obfuscar, но исполняемая машина .NET ругается внутри браузера на обфусцированную сборку.