LoginSignup
2
4

More than 1 year has passed since last update.

【WinUI3】 <WindowsPackageType>をNoneにしても"Unable to load DLL Microsoft.ui.xaml.dll"でエラーになってはまったお話

Posted at

概要

パッケージングしないプロジェクトで、プロジェクトファイルに<WindowsPackageType>None</WindowsPackageType>を設定していても、下記のようにXamlCheckProcessRequirements()Unable to load DLL 'Microsoft.ui.xaml.dll'でエラーとなってはまってしまった。
しかもビルドターゲットをx64としたのときのみ現象が発生し、x86では現象が発生しないという状態で、情報をいくら探しても解決することができなかった。
image.png

解決策

結論から言うと、インストールしたWindowsAppRuntimeのフォルダの権限がまずかったようで、コマンドプロンプトで下記のコマンドを実行することで解決できた。
※ ファイル名の部分はPowerShellでGet-AppPackageなどで各々の環境のRuntimeに合わせて変更してください。

takeown /f “C:\Program Files\WindowsApps\Microsoft.WindowsAppRuntime.1.1_1005.616.1651.0_x64__8wekyb3d8bbwe” /r /d y
icacls.exe “C:\Program Files\WindowsApps\Microsoft.WindowsAppRuntime.1.1_1005.616.1651.0_x64__8wekyb3d8bbwe” /grant Users:(RD,R,REA,RX) /t

x64のプロジェクトファイルでのみ現象が発生していると煮え切っていたが、パッケージプロジェクトを実行した際にx64のみでXAMLのホットリロードが効かなかった。(x86では効いていた)
ここを糸口にしていろいろ探している際に、以下のgithubのissuesを見つけ、試してみるとうまくいった。

MSストアからのアップデートで権限がおかしくなったのか、はたまたVisual Studioを管理者権限で実行してデバッグしてしまったのか、真因は不明だが、何はともあれ解決できてよかった。

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4