Open3

CygwinでチェックアウトしたリポジトリをビルドするとUWPアプリが起動しなくなる

okuokuokuoku

これ激烈に意味不明だな。。いや気持ちはわかるんだけど通常の人間はトラブルシュートできないんじゃないだろうか。。

okuokuokuoku

ビルドはできるがDeployやデバッグ実行がエラーになる

Deployは管理者権限に昇格すると成功するが、管理者権限を持っていない状態だとAccess Denied 0x80070005 で失敗する。

DEP0700: Registration of the app failed. [0x80070005] エラー 0x80070005 が発生したため、 (AppxManifest.xml) からのパッケージ 562E505C-F5EC-3715-B158-23EF48439EE6_1.0.0.0_x64__d7c8pgvss6ysm に対する展開 Register 操作 (ターゲット ボリューム C:) に失敗しました。アプリの展開に関する問題の診断については、http://go.microsoft.com/fwlink/?LinkId=235160 を参照してください。

管理者権限でDeployに成功させても、デバッグ実行時にアプリが即終了してしまいアタッチできない。

Unable to activate Windows Store app '562E505C-F5EC-3715-B158-23EF48439EE6_d7c8pgvss6ysm!App'. The test-imgui-app.exe process started, but the activation request failed with error 'The target process aborted before activation completed. More information may be available in the Debug pane of the Output window (Debug->Windows->Output)'.

okuokuokuoku

Procmonで観察する

Procmonで観察すると、Cランタイムのロード時にAccess Deniedになっていることがわかる。

High Resolution Date & Time: 2024/07/28 2:23:23.1780178
Event Class: File System
Operation: CreateFile
Result: ACCESS DENIED
Path: E:\repos\em2native-tests_build\pkg-WindowsMSVCUWPx64@SDL2-ANGLE-DirectX11\test-imgui\Debug\AppX\ucrtbased.dll
TID: 25232
Duration: 0.0000300
Desired Access: Read Data/List Directory, Execute/Traverse, Synchronize
Disposition: Open
Options: Synchronous IO Non-Alert, Non-Directory File
Attributes: n/a
ShareMode: Read, Delete
AllocationSize: n/a

これはチェックアウトにCygwinを使ったことでCygwin側のNTFSパーミッションが継承され、ストアアプリのグループにアクセス権が付かないためと考えられる。

... 面倒なのでMsysGitでチェックアウトしなおしてビルドもやりなおした。。