UWPと.NET Coreプロジェクトは同じproject.jsonを使用できるようです。 UWPプロジェクトが、これは3つのDLLを構築することにつながり、独自のcsprojファイルを持っているので
"frameworks": {
"netstandard1.3": {},
"uap10.0": {
"dependencies": {
"Microsoft.NETCore.UniversalWindowsPlatform": "5.2.2"
}
}
},
:その「枠組み」のセクションは次のようになりますproject.jsonはnetstandard1.3を引き起こし、uap10.0フォルダは(ビン/デバッグに表示され、 UWPプロジェクト自体がbin/Debugにもう1つのDLLを構築している間に、.NETコアプロジェクトをビルドするときにDLLを生成します)。
bin/Debug/uap10.0/My.dllはガベージであり、UWP固有のコードを含むことはできません(.NETコアプロジェクトではUniversal Windowsリファレンスが使用できないため)。したがって、プロジェクトでWINDOWS_UWPを定義しません。 .jsonの「uap10.0」部分。
ただし、UWP csprojファイルではWINDOWS_UWPが定義されており、ユニバーサルWindowsはそのプロジェクトで使用できます。 UWPプロジェクトが構築されますときに、それは実際にはこれだけを使用しています。
"uap10.0": {
"dependencies": {
"Microsoft.NETCore.UniversalWindowsPlatform": "5.2.2"
},
(このコードはproject.jsonに欠落している場合、UWPプロジェクトがビルドされません)。残りのproject.json(主に "netstandard1.3"ターゲットに特有)は、ビルドプロセスに害を及ぼしません。
私は、project.jsonだけでなくcsprojファイルでも条件付きディレクティブ(この場合はWINDOWS_UWP)を定義できるので、同じプロジェクトを使用するUWPプロジェクトを処理するときに余分な結果を得ることができます.NETコアプロジェクトとして.jsonファイルを作成します。ある程度、UWP csprojはビルドプロセス中に実際のものとマージされる別のproject.jsonとして機能します。
はい、私は余分なDLLのbin/Debug/uap10.0/My.dllは使用していない(ちょうどコンパイル時間の無駄です)が得られますが、私の場合は問題ではありません。
私は、実際には古いVisual Studioや.NET Framework(たとえば.NET Framework 2.0)のターゲットが他にもたくさんあり、共有ライブラリの概念を使用できないとは言いませんでした。だから私は実際にこのようにプロジェクトを再構築することはできません。 – Alex