2017-02-02 25 views
1

私は最近、Visual Studio 2015で空白のUWPアプリケーションを作成し、そのアプリケーションにナゲットパッケージを追加しようとしました。パッケージのインストールが失敗し、出力ウィンドウで、次のmessasgesになった...周り探しユニバーサルWindowsプラットフォーム/ UAP:AOTとは何ですか?

System.Reflection.Emit.ILGeneration 4.0.1 provides a compile-time reference assembly for System.Reflection.Emit.ILGeneration on UAP,Version=v10.0, but there is no run-time assembly compatible with win10-arm-aot. 
One or more packages are incompatible with UAP,Version=v10.0 (win10-arm-aot). 
System.Reflection.Emit.ILGeneration 4.0.1 provides a compile-time reference assembly for System.Reflection.Emit.ILGeneration on UAP,Version=v10.0, but there is no run-time assembly compatible with win10-x64-aot. 
One or more packages are incompatible with UAP,Version=v10.0 (win10-x64-aot). 
System.Reflection.Emit.ILGeneration 4.0.1 provides a compile-time reference assembly for System.Reflection.Emit.ILGeneration on UAP,Version=v10.0, but there is no run-time assembly compatible with win10-x86-aot. 
One or more packages are incompatible with UAP,Version=v10.0 (win10-x86-aot). 

、私は「project.json」の中に「ランタイム」への参照を発見しました。 (私はこのようになります)...

{ 
    "dependencies": { 
    "Microsoft.NETCore.UniversalWindowsPlatform": "5.1.0" 
    }, 
    "frameworks": { 
    "uap10.0": {} 
    }, 
    "runtimes": { 
    "win10-arm": {}, 
    "win10-arm-aot": {}, 
    "win10-x86": {}, 
    "win10-x86-aot": {}, 
    "win10-x64": {}, 
    "win10-x64-aot": {} 
    } 
} 

私の質問はこれです:各「ランタイム」および添付の「-aot」と同等のランタイムの違いは何ですか?

サポートしていないナゲットパッケージを使用したい場合は、これらのランタイムを削除できることを示す記事がありますが、削除したいものだけを削除することをお勧めします。

注:私はこの違いがあるかどうかは分かりませんが、私が構築しているUWPアプリケーションは、サイドロードされることが予想されます(これはビジネスアプリケーションのラインです)。しかし最終的には更新を容易にするために、ビジネスストアを介して配布する必要があります。

ありがとうございます。

+1

「時間の覚悟」を意味します。 「ちょっとした時」の反対。アセンブリ内の中間コードがマシンコードにコンパイルされる方法を記述します。 UWPのAOTコンパイラは.NETネイティブとしてよく知られています。そして、はい、Reflection.Emitとは全く互換性がありません。なぜなら、常にジャストインタイムコンパイラを必要とするからです。 UWPアプリでは使用できません。 –

+0

@Martin Robins、この問題のアップデートはありますか?下の回答から有益な情報を得ることができますか? –

答えて

2

ランタイムは、コードが実行されているライブラリ、フレームワーク、またはプラットフォームを指す一般的な用語です。 win10-armとwin10-arm-aotランタイムは異なるプラットフォームです。ウィキペディアは、Runtime systemです。

アヘッド・オブ・タイム(AOT)コンパイルCやC++などの高レベル プログラミング言語、またはJava(登録商標)バイトコードなどの中間言語 をコンパイルする行為である:ウィキペディアAhead-of-time (AOT)通りに加えて 、 をネイティブ(システム依存の)マシンコードに変換して、 という結果のバイナリファイルをネイティブに実行します。中間言語にコンパイルすることができますマネージコードのランタイムを持ついくつかのプログラミング言語は、ジャストインタイム を利用 (JIT)

だから私はハンスアンパッサン、AOTコンパイラーに同意するシステムと互換性がありません。 .Reflection.Emit.ILGenerationパッケージ。したがって、このパッケージを使用する場合は、これらのaotランタイムを削除することができます。

関連する問題