🫥
WinUI3のプロジェクトでMicrosoft.UI.Xaml.dllが見つからないエラー
先日のVisual Studioのアップデートで、WinUI3のプロジェクトテンプレートがVisual Studio Installerからもインストールできるようになりました。
以前は外部インストーラーを使っていろいろ準備が必要でしたが、これからは標準的な方法で開発環境を整えることができるようになりそうです。
さて、そんなプロジェクトテンプレートを使ってさっそくHelloWorldを決めようとすると、悲しいことに起動直後に例外が発生します。(System.DllNotFoundException)
新規作成直後の本当に何も変更してないプロジェクトで発生するためびっくりぽんです。
これはパッケージ化版のビルドではなく、アンパッケージ版(XCopyで配布)のビルドで発生します。例外メッセージの通り「Microsoft.UI.Xaml.dll」が実行ファイルと同じディレクトリに存在しないという状態なのですが、これはWindows App SDKから必要なバイナリをデバッグフォルダにコピーしてないということのようです。なので、下のようにcsprojにWindowsAppSDKSelfContained
を追加してあげると無事必要なバイナリがコピーされてエラーが解消します。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
~中略~
<WindowsAppSDKSelfContained>true</WindowsAppSDKSelfContained>
</PropertyGroup>
~後略~
</Project>
Discussion