2016-11-26 4 views
2

私はVisual Studio 2015の.xprojの "マルチターゲット"機能を楽しんでいます。これは、同じC#プロジェクトで複数の.Netフレームワークを対象にするのがとても簡単です。私は現在、.Net 4.5.2、4.6、4.6.1、4.6.2、.Net Standard 1.3および.Net Standard 1.6をターゲットにしており、すべてのDLLをNugetパッケージにパッケージングしています。私の.Netコアライブラリはどの.NETフレームワークをターゲットにすべきですか?

これは過度だと思いますか?より少ないフレームワークを対象にすべきですか?もっと?

ところで、私はxprojが最終的に.csprojに有利になることを知っていますが、それは当面使用しているものです。

+1

4.6.2を使用し、4.6.1と4.6をスキップしてください。 –

+0

@ JeroenHeierが正しいです。 Microsoftはすぐに4.6.2より前の.netフレームワークのサポートをやめようとしています –

+0

上記の人は誰でもMicrosoftのドキュメントを読んでいますか? https://support.microsoft.com/en-us/gp/framework_faq/en-us Microsoftは4.5.2/4.6/4.6.1を引き続きサポートしています。 –

答えて

4

まだ条件付きコンパイルがない場合は、.NET Framework 4.5.2および.NET Standard 1.3のみを残してください。

理由は簡単です。パッケージが.NET Framework 4.5.2で動作する場合は、より大きなバージョンのすべての.NET Frameworkで動作します。それらを別々に目標設定する必要はありません。

同じことが.NET標準に適用されます。パッケージが.NET Standard 1.3を対象としている場合、.NET Standard 1.4/1.5/1.6/2.0では正常に動作します。

.NET Framework 4.5.2では.NET Standard 1.3が実装されていないため、両方を対象にする必要があります。あまりにも限られているので、.NET Standard 1.2をターゲットにしたくないかもしれません。

+0

誰かが私のライブラリを使用していて、これらのフレームワークの1つをターゲットにしている場合、4.6、4.61、および4.6.2で構築されたバージョンを提供していないという欠点はありますか? – desautelsj

+0

@desautelsjパラグラフ2を参照してください。 –

+0

正しくはないと思います。 '#if NETSTANDARD1_2'のようなプリプロセッサディレクティブを使うと(NETSTANDARD1_3には適用されません)、もし' NETSTANDARD'のようなものや、すべての '純粋なコア 'フレームワーク? –

関連する問題