8

UWPプロジェクトを実行しているときに、次のダイアログが表示されます。Windowsストア/ユニバーサルアプリケーションでロードするDLLの依存関係を特定する方法

「Windowsストアアプリ 『MyAppsMangledName』をアクティブにすることができません。 『MyExeName』プロセスが始めたが、起動要求は、 『アプリケーションが起動しませんでした』というエラーで失敗しました。」

Visual Studioの出力は次のとおりです。

スレッド0x3d4cコード-1073741515(0xc0000135)で終了しました。 スレッド0x3b50がコード-1073741515(0xc0000135)で終了しました。 プログラム「MyExeName」がコード-1073741515(0xc0000135)で終了しました。「依存するDLLが見つかりませんでした」。

イベントビューアは、基本的に3種類の方法と他には何のポップアップダイアログを再表示3つのイベントを持っています。起動時にプロセスモニタを実行

は、多くのDLLが正常にロードされているが、何もが、残念ながら見つかりませんでしたどのような名前は表示されませんいくつかのNAMENOTFOUNDイベント以外にも失敗したことを示すない私を示しています。 Win32ので

役立つダイアログは、通常はロードできませんでしたDLLを示しています。もちろん、.Netアプリケーションの場合、融合ログはこれを非常に簡単にトレースします。しかし、Store/UWPアプリケーションでは、問題のある依存関係を追跡する良い方法が見つからないようです。

+0

[Dependency Walker](http://www.dependencywalker.com/)を使用してみてください。 –

+0

Dependency Walker with Storeアプリケーションの問題は、レポートに大きなノイズが存在することです。 API-MS-WIN-CORE * .DLL EXT-MS-WIN * .DLLの形式と、DEVICELOCKHELPERS.DLLやEMCLIENT.DLLのようないくつかのものは、ツールでは見つかりません。 マニフェストに指定されているパッケージ依存関係は、実行時に依存関係が解決されているかどうかに関係なく検出されません。私の場合はまさに問題でした。 プロファイリングの下で​​実行できると、おそらくこれが解決されますが、Dependency Walkerには概念がないように見えるサンドボックスでアプリを実行する必要があります。 – DubiousPusher

答えて

9

これはちょうど私が取り組んでいるプロジェクトで私にも当たった。掘り起こした後、私のチームの誰かがそれを理解することができました。だから私は同じ問題で苦労している他の人たちにも分かち合うと思った。

我々はVS2015を使用して、C++でUWPをやっています。そのため、gflagsというプログラムがC:\ program Files(x86)\ Windowsキット10 \ Debuggers \ x64 \ gfl​​ags.exeにあります。

コマンドを実行する前にgflags.exe -i your-program-name.exe + sls

注:gflagsが自分のパスにないため、パスを追加するか、コマンドを実行する前にナビゲートしてください。

ディレクトリなしでexeの名前を渡すだけです。それは、その名前にマッチするexeのためにsls(show loader snaps)をオンにするVSのレジストリ設定を設定します。その後、VSでアプリケーションを実行すると、出力ウィンドウにロードできないdllの名前など、大量のdllロード情報が表示されます。 DLLをロードできません: "vccorlib140d_app.DLL"、親モジュール:「E:\プロジェクト--- \ソース\は\ vs2015_Debug_UWP_x64を構築します\

5038:: - - LdrpProcessWork ERROR 34f4する@ 789320468私たちのケースでは、このましたAppX ---。exe "、ステータス:0xc0000135

この(YMMV)をテストする別の迅速な代替方法は、出力を動作する別のビルド設定と比較することでした。私たちの場合、リリースビルドはうまく動作しますが、デバッグはbarfをビルドします。そして、リリースの出力では、デバッグに欠けていたvccorlib140_app.dllがロードされていました。

関連する問題