2015-10-13 23 views
5

私はVisual Studio 2015 Community、c#、およびXAMLを使用してWindows 10 Store Windows Universalアプリケーションを開発中です。圧縮されたファイルを解凍し、そこに見つかったイメージを表示しています。Windows.UI.Xaml.dllのアプリケーション内部例外

ビルドには0の警告があります。

デバッグバージョンは入力ファイルのサイズに関係なく正常に動作します。

リリースバージョンは、一般的な入力ファイルサイズで正常に動作します。

大きな入力ファイルサイズ(約100万画素イメージ)の場合、appname.exeの「処理されない例外」(Windows.UI.Xaml.dll)と一貫してクラッシュします。0xC000027B:アプリケーション内部例外には発生しました(パラメータ:0x127DC468、0x00000005)。

クラッシュは、ユーザーが2番目のイメージを表示しようとしたときに発生します。すべての解凍が完了し、この時点までにすべてのビットマップが作成されています。

私はビルドの設定を手伝って、「.NETネイティブツールチェーンでコンパイルする」オプションの違いを絞りました。このオプションをオンにすると、アプリケーションがクラッシュします。このオプションをオフにすると、アプリケーションはうまく動作します。

すべてのアプリケーションでは、約400 MBのヒープを使用しているため、小さくなくてもマシンの容量に近いものではありません。

「このオプションをオフにしてください!」と、私はあなたが叫ぶのを聞いています。チェックボックスをオフにすると、以下に示す認証失敗につながる:コンパイルの.Netのネイティブツールチェーンが選択されていない場合

FAILED 
Supported APIs 


• Error Found: The supported APIs test detected the following errors: 
-API OpenSemaphore in api-ms-win-core-synch-l1-1-0.dll is not supported for this application type. System.Threading.dll calls this API. 
-API CreateSemaphore in api-ms-win-core-kernel32-legacy-l1-1-0.dll is not supported for this application type. System.Threading.dll calls this API. 
-API ExecuteAssembly in uwphost.dll is not supported for this application type. StupidTest.exe calls this API. 
-API DllGetActivationFactory in uwphost.dll is not supported for this application type. StupidTest.exe has an export that forwards to this API. 

空のプロジェクトは、同じ失敗を被ります。

だから私の質問:

ユニバーサルアプリは、コンパイルの.Netのネイティブツールチェーンを使用する必要がありますか?

内部例外のパラメータの意味についてのドキュメントがありますか、それともトラブルシューティングの対象となる他の場所ですか?

要するに、「選択されても動作しませんが、認定を受けるには選択する必要があります」ジレンマ私は自分自身を見つけるのですか?

+0

私はまったく同じ問題を抱えています。@ sililrobotはこれを解決しましたか? – pogorman

+0

これが表示されたら、最新の.NETネイティブコンパイラを含む** Microsoft.NETCore.UniversalWindowsPlatform ** nugetパッケージを更新してみてください。そうすることで問題は解決します。 –

答えて

1

私は過去数日間もこの問題に苦労していましたが、私は答えを見つけました!

Visual Studio 2015をアップデート1にアップデートしていない場合は、それを実行してください。このエラーはコンパイラのバグであり、更新後にコンパイルされた.Netネイティブツールチェインオプションを使用してプロジェクトをビルドすることができます。

はい、WACKツールが選択する4つのエラーは、Package.appxmanifestファイルのビルドメニューの.Netネイティブツールチェーンオプションをチェックせずにプロジェクトをコンパイルするためです。