現在複数のターゲットをサポートしている既存のライブラリを移動しようとしています: Profile259、.NET 4.5、.NET 4.0 Client Profile、および NetCore451 (Win 8.1+)。ターゲット フレームワークに応じて、Microsoft.Net.Http (PCL および .net 4.0) と Json.NET (すべてのターゲット) の 2 つの直接的な依存関係が必要です。
.NET 4.5、.NET 4.0 CP、.NET 4.6 などの特定のプラットフォーム ターゲットに移行できました。ただし、PCL をターゲットにする際に問題が発生しています。
次の project.json で
"frameworks": {
".NETPortable,Version=v4.5,Profile=Profile259": {
"compilationOptions": { "define": [ "Portable" ] },
"dependencies": {
"Newtonsoft.Json": "8.0.2",
"Microsoft.Net.Http": "2.2.29"
},
"frameworkAssemblies": {
"Microsoft.CSharp": "",
"mscorlib": "",
"System.Collections": "",
"System.ComponentModel": "",
"System.Diagnostics.Debug": "",
"System.Dynamic.Runtime": "",
"System.Globalization": "",
"System.IO": "",
"System.Linq": "",
"System.Linq.Expressions": "",
"System.Linq.Queryable": "",
"System.Net": "",
"System.Net.Primitives": "",
"System.Net.Requests": "",
"System.ObjectModel": "",
"System.Reflection": "",
"System.Reflection.Extensions": "",
"System.Runtime": "",
"System.Runtime.Extensions": "",
"System.Text.Encoding": "",
"System.Text.RegularExpressions": "",
"System.Threading": "",
"System.Threading.Tasks": ""
}
},
"netcore451": {
"dependencies": {
"Newtonsoft.Json": "8.0.2"
},
"frameworkAssemblies": {
"Microsoft.CSharp": "4.0.0",
"mscorlib": "4.0.0",
"System.Collections": "4.0.0",
"System.ComponentModel": "4.0.0",
"System.Diagnostics.Debug": "4.0.0",
"System.Dynamic.Runtime": "4.0.0",
"System.Globalization": "4.0.0",
"System.IO": "4.0.0",
"System.Linq": "4.0.0",
"System.Linq.Expressions": "4.0.0",
"System.Linq.Queryable": "4.0.0",
"System.Net": "4.0.0",
"System.Net.Http": "4.0.0",
"System.Net.Primitives": "4.0.0",
"System.Net.Requests": "4.0.0",
"System.ObjectModel": "4.0.0",
"System.Reflection": "4.0.0",
"System.Reflection.Extensions": "4.0.0",
"System.Runtime": "4.0.10",
"System.Runtime.Extensions": "4.0.0",
"System.Text.Encoding": "4.0.0",
"System.Text.RegularExpressions": "4.0.0",
"System.Threading": "4.0.0",
"System.Threading.Tasks": "4.0.0"
},
"compilationOptions": {
"define": [ "Async", "NETFX_CORE" ]
}
}}
次のような楽しいエラーが発生します。
.NETPortable,Version=v4.5,Profile=Profile259 error CS0012: The type 'Object' is defined in an assembly that is not referenced. You must add a reference to assembly 'mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes'.
.NETCore,Version=v4.5.1 error CS0012: The type 'Object' is defined in an assembly that is not referenced. You must add a reference to assembly 'mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes'.
Profile 259 から Profile111 に切り替えて、PCL の問題を解決するMicrosoft.Net.Httpへの依存を削除することができました。
netcore451の場合、 Json.NETへの参照を削除すると、システム参照の問題は解決されますが、ライブラリはコンパイルされなくなります。
簡単に言えば、何を試すべきかについてのガイダンスはありますか? それとも、変更を加えるために依存しているライブラリに翻弄されているのでしょうか?