通常、次のターゲットが に表示されproject.json
ます。
"frameworks": {
"net45": {},
"dnx451": {},
"dnxcore50": { }
}
dnxcore50
プロジェクト コードの唯一の移植可能なバージョンになり、dnx451
実際には .Net 4.5.1 mscorlib などを対象としています。
ここで、 という別のターゲットを追加するとdnx50
、有効な出力が作成され、問題なく動作します。
dnx451 と dnx50 の違いは、異なる .Net アセンブリ dll を参照することです。
例mscorlib.dll
:
- dnx451リファレンス
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\mscorlib.dll
- dnx50
C:\Windows\Microsoft.NET\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll
は、基本的に .net 4.6 バージョンを参照しています。
質問は次のとおりです。
dnx50
たとえば、カスタム ライブラリのターゲットを作成することは理にかなっていますか? 基本的に.net 4.6をターゲットにして、dnxcore50
ポータブルにはない特定の機能が必要ですか?
または、dnx451
ターゲットは実際には十分であり、より新しい.netバージョン(4.5.2、4.6)の特定の機能が必要ない場合、このターゲットは.net 4.6がシステムにインストールされていればとにかく使用します.プロジェクトに必要な最低バージョンをターゲットにしているだけですか?
つまり、dnx451 と dnx50 の両方のターゲットを使用すると、実際には同じ出力が作成されるということですか?