の使用は、何らかの問題に遭遇することを意味する可能性があると思いますSystem.Core
(技術的な観点からのみ - IANAL は、配布の問題についてはコメントしません)....
例として(具体的な証拠はなく、仮説を立てただけです)、System.Coreの.NET 3.5バージョンがあり、System.Core内のクラスを使用する.NET 2.0アセンブリがありますが、そうではないためぐらつきがあります.NET 2.0 に付属し、同じように動作しない可能性がある System.Core アセンブリ...または、3.5 System.Core の何かが、.NET 3.5 で変更されたアセンブリの別の 1 つが特定の方法で何かを行うことを期待した逆特定の機能を提供しますが、.NET 2.0 バージョンのアセンブリにはありません。デバッグ/トラブルシューティング/診断/ヘッドバンギングにかなりの時間を費やすような状況のように思えます.
そうは言っても、人々はここで動作するようになり、以前のSOの質問はこことここにあるようです。これらのリンクには、役立つ解説が含まれている場合もあります。また、人々が同じこと (.NET 2.0 で LINQ を使用) によって動機付けられているように見えるいくつかのリンクがこことここにあります。また、ここでMonoのアセンブリを使用したある種の実装
これは、アセンブリを配置するだけの場合 (私の意見です)、テストにかなりの時間を費やして、予測できない結果が発生するという点でリスクフットプリントを減らしたいと思うことの 1 つです。
お気づきのように、2.0 と 3.5 の間に (2.0 -> 4.0 とは異なり) 個別のランタイムはありませんでした。そのため、その事実を使用して、アプリのデプロイ先の各ターゲット マシン (デスクトップ用のデスクトップ) に最新の 3.5 をインストールできます。 WinForms/WPF アプリまたは Web ベースのもののサーバー上で) 、Visual Studio で開発するときに .NET バージョンとして 3.5 をターゲットにするだけですか? これにより、一連のアセンブリをスワップイン/アウトするだけでなく、開発作業の一環として実際にフレームワークバージョンをターゲットにしているので、少し安全になると思います。