現在 .NET 4 のみに実装されているライブラリ用の NuGet パッケージがあります。しかし、さまざまなプラットフォーム (WinRT、SL5、WP8) をサポートするためにライブラリ コードを移植したので、理想的にはポータブル クラス ライブラリ (PCL) としてパッケージ化したいと考えています。 ) メンテナンスを簡素化します。ただし、ライブラリは LINQ to XML (XELements など) を使用しており、.NET 4.0.3 をターゲットにし、クライアント マシンに .NET 4.0.3 をインストールする必要があります。
したがって、プレーンな .NET 4 をターゲットにする方法に関してジレンマがあります。NuGet パッケージに関するものではなく、ユーザー ベースを制御できる場合は、.NET 4.0.3 ランタイムをインストールすることを前提条件として単純に述べることができます。ただし、ユーザーベースを制限したくないので、.NET 4.5、SL5、および WP8 をターゲットとするポータブルと、.NET4 のみをターゲットとする非ポータブルの 2 つのバージョンのライブラリが必要になるようです。ばかげているのは、LINQ to XML はもちろん .NET 4 でサポートされているため、両方のライブラリがまったく同じコードを持つことです。
私の最初の質問は、これが正しい戦略であると思われるかどうかです。別の方法として、XElement に依存するすべてのコードを PCL から取り除き、移植性のない部分に含めることもできますが、すべてのライブラリでコードがまったく同じになるため、これは正しくないようです。
2 番目の質問は、PCL から .NET 4.0.3 をターゲットにすることがまったく意味があるかどうかです。.NET 4 をターゲットとする別のバージョンがある場合、.NET 4.0.3 ランタイムがインストールされているユーザーは、プレーンではなく PCL を取得することで何かを得ることができますか? .NET 4 バージョン? .NET 4.0.3 には他にも改善点があることは知っていますが、それらは私のライブラリには影響しません。