Avaloniaでプロジェクト作成時・開発開始時の困りごと
Linuxで dotnet run が失敗する
とりあえず、LANG=C dotnet run すれば動くので、今はそれで応急とする
フォルダ・NameSpace構成の変更がうまく行かない
フツーに以下をしただけでは、「xamlのエラー」「MainWindowのInitializeComponent()が無いとコンパイルエラー」で、ビルド出来ず動かない。
1. フォルダを作成し既存のソースを移
2. クラス・xamlの"namespace"部分(と思しきところ)を変更
どうも「auto source generator error...」的なインジケートが出てるので、ここらへん関連だと思うが…。
素のAvaloniaでは「MessageBox」がない
Textbox(TextArea)と、MessageBoxのTextのフォントが豆腐になる
GenericHostを適用できない
おそらくは「技術的には可能です」な「自分が出来ないだけ」だろうとは思う
指摘の通り「AppBuilder と IHostBuilderという似た概念を二重でビルドすることになる」ので統合が待たれる
試験的に、このissue内のサンプルソースをコピペで実装してみる
AvaloniaのWindowが閉じられても、GenericHostが終了しない
上記のサンプルソースをコピペしたが、自動的には終わってくれない
AvaloniaのViewModelにGenericHostのDIによる依存性注入が出来ない
異なった概念なので「自然な形」では出来なそう
もう正直めんどくさくなったので、暫定処置として IHostBuilder.Build().Run() して、そのConfigureでDI登録で IHostedService を実装したクラスを作り、この中で StartWithClassicDesktopLifetime() して片付けた
WinFormsでGenericHost扱いにするためのやり方と一緒
「新しいプロジェクトの作成」で作った Program.cs の BuildAvaloniaApp() メソッドを維持する必要がある
VisualStudioのAvaloniaデザイナが上記メソッドを期待している(なぜ?)
自分のプログラムでは自作の IHostedService 実装クラスに「AvaloniaApp作成責務」を移動しているので、デザイナが動かなくなった
しゃーなしで、移動先のメソッドを呼ぶWrapperメソッドをProgramクラスにStaticで持たせるように
なんか…ダーティに感じるのでうまく解決したい