2021年05月28日
川俣晶の縁側ソフトウェア技術雑記 total 4107 count

BlazorのAOTビルドができない

Written By: 川俣 晶連絡先

問題 §

 Blazorは.NET6 Preview 4で。AOTで直接WebAssemblyにビルドできるはずだ。しかし、ビルドに失敗する。

 プロジェクトに<RunAOTCompilation>true</RunAOTCompilation>は追加してある。

 足りないと言われるモジュールをnugetなどで入れることはできない。

原因 §

 環境の準備不足。

解決 §

1) 事前に以下のコマンドでAOTビルドのワークロードをインストールしておく。

  • dotnet workload install microsoft-net-sdk-blazorwebassembly-aot

2) 環境変数PYTHONUTF8=1を追加しておく

 Visual Studioを普通に使っている場合はVisual Studio起動前にシステムレベルで環境変数を追加しておく必要がある。(ビルド時にあとから追加することはできない)

3) 配置を行う

 AOTコンパイルはとても時間が掛かる。配置を行うまでは実行されない。

問題2 §

 ビルドはできたが配置して実行できない。

原因 §

 不明

解決 §

 ローカルでの実行には成功していないが、AzureのApp Serviceに発行した場合は動いた。

問題3 §

 AzureのApp Serviceに発行にしようとしたら.NET 6は対応していないと警告される。

原因 §

 確かに.NET6のアプリでかつAzureは.NET 6は未対応だから。

解決 §

 無視して配置して良い。どうせ.NET 6に依存したコードが動くことはない。(明示的に入れない限り)

 動くのはWASMのコードだけ。