C# WinUI 3アプリを作っていく途中で、調べたことを忘録的に投稿します。今回はWinUI3プロジェクトで、Unpackagedビルド環境でデバッグ実行した際に[’Unable to load DLL ‘Microsoft.ui.xaml.dll’ or one of its dependencies: 指定されたモジュールが見つかりません。(0x8007007E)’]を解消する方法です。
XamlCheckProcessRequirementsで例外発生
デバック実行時に[プロジェクト名 (Unpackaged)]を選択した場合に
[App.g.i.cs]内の次の部分で例外が発生します。[App.g.i.cs]内の次の部分で例外
XamlCheckProcessRequirements();
System.DllNotFoundException: ‘Unable to load DLL ‘Microsoft.ui.xaml.dll’ or one of its dependencies: 指定されたモジュールが見つかりません。(0x8007007E)’
WindowsAppSDKSelfContained で解決
プロジェクトファイルに[WindowsAppSDKSelfContained]を追加することで例外を解決します。
具体的には次の手順でプロジェクトファイルを編集します。
1. [ソリューション エクスプローラー]画面の[プロジェクト名 ]ツリー部分をマウスの右ボタンでクリックします。
2. 表示されたポップアップメニューから[プロジェクト ファイルの編集]を選択します。
3. 表示された[プロジェクト名.csproj]画面の[PropertyGroup]に[WindowsAppSDKSelfContained]タグを以下のように追加します。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net6.0-windows10.0.19041.0</TargetFramework>
<TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
<RootNamespace>TabViewApp</RootNamespace>
<ApplicationManifest>app.manifest</ApplicationManifest>
<Platforms>x86;x64;ARM64</Platforms>
<RuntimeIdentifiers>win10-x86;win10-x64;win10-arm64</RuntimeIdentifiers>
<PublishProfile>win10-$(Platform).pubxml</PublishProfile>
<UseWinUI>true</UseWinUI>
<EnableMsixTooling>true</EnableMsixTooling>
<WindowsAppSDKSelfContained>true</WindowsAppSDKSelfContained>
</PropertyGroup>
...
ファイルを上書き保存して、デバック実行して確認を行います。
まとめ
今回は短い記事ですが、WinUI3プロジェクトで、[Unpackaged]ビルドでデバッグ実行した際に例外[System.DllNotFoundException: ‘Unable to load DLL ‘Microsoft.ui.xaml.dll’ or one of its dependencies: 指定されたモジュールが見つかりません。(0x8007007E)’]を解消する方法を書きました。
プロジェクトファイル内に[WindowsAppSDKSelfContained]タグを追加することで例外の発生を改善することができます。
C#のWinUI 3アプリで、XamlCheckProcessRequirements で例外が発生する人の参考になれば幸いです。
スポンサーリンク
最後までご覧いただき、ありがとうございます。