2023.4.16
以前の調査(Ver1.2)から半年が経って全ての記憶を失いました。開発環境の構築すら分からない状態になりましたが、以前の調査時にその辺りを残していなかったので、一からまとめ直します。
できていたこと
-
WPF のような Unpackage かつ SelfContained な exe を作成できた。
<!-- .csproj --> <WindowsPackageType>None</WindowsPackageType> <WindowsAppSDKSelfContained>true</WindowsAppSDKSelfContained>
できていなかったこと
- x64 のデバッグ実行で アプリ×ボタンが効かない(x86 は問題なし) ← Ver1.2 で解消してました (2023.4.16)
- リリース.exe をSingleFile にできない。フレームワークとして提供されてるかすら謎。 ← 未解決です (2023.4.16)
Windows App SDK 用のツールをインストールする - Windows apps | Microsoft Learn を参照にしました。 読むのが面倒なので以下にざっくりまとめます。(次に必要な機会には手順が変わってそうですが…)
- VisualStudio2022 をインストールします
- ワークロード → .NET デスクトップ開発 を選択します
- インストールの詳細 → Windows アプリ SDK C# テンプレート を選択します
- 個別のコンポーネント → Windows 10 SDK (10.0.19041.0) を選択します。※参照元の指示Version。最新候補は Windows 11 SDK (10.0.22621.0) でした。
- VisualStudio内の拡張機能から WinUI3 ~ Template Extension を全部インストールする。(ここはテキトー)
WinUI 3 | Auto-removing language folders | WinAppSDK | XAML | C# | .NET | UWP | WPF - YouTube
<!-- .csproj -->
<Target Name="RemoveFoldersWithMuiFiles" AfterTargets="Build" >
<ItemGroup>
<RemovingFiles Include="$(OutDir)*\*.mui" Exclude="$(OutDir)ja-jp\*.mui" />
<RemovingFolders Include="@(RemovingFiles->'%(RootDir)%(Directory)')" />
</ItemGroup>
<RemoveDir Directories="@(RemovingFolders)" />
</Target>
- ViewModel に
INotifyPropertyChanged
を継承させるのは同じっぽい。 MVVM やし当然なのかも。 - MVVM インフラは、CommunityToolkit.Mvvm を導入すればよさそう。(WPF での学習が役に立って良かった)
- DI は、Microsoft.Extensions.DependencyInjection でよさそう。(こちらも流用できた)
- Single Exe を作成できない!!
WPFからWinUI 3への移行チャレンジ その1 | ドクセル @suusanex 2023.6.3 勉強会