Как приручить .NET AOT с Avalonia WebAssembly?
От: dsorokin Россия  
Дата: 06.09.24 14:51
Оценка:
Здравствуйте!

Возникла проблема. Не могу понять, как ее решить. Пытаюсь с помощью .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 ругается внутри браузера на обфусцированную сборку.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.