single.php

C# WinUI 3アプリでUnpackagedビルドでデバッグ時の例外 0x8007007Eを解消する方法

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 で例外が発生する人の参考になれば幸いです。

スポンサーリンク

最後までご覧いただき、ありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です