2010-12-08 18 views
2

私は.DLLターゲティング.Net 4を作成しましたが、今はVisual Studio 2008を使用している人がDLLを使用できるように.Net 3.0にコンパイルすることを考えています。.Net4と.Net3.0に匹敵する.DLLに違いはありますか?

.Net4と.Net3.0に匹敵する.DLLに違いはありますか?

つまり、私は2つのDLL(フレームワークごとに1つ)を作成する必要があります。なぜなら、フレームワークに合わせてコンパイルしたDLLをターゲットにする方が良いからです。または、私はちょうど.Net 3.0にコンパイルされたものを提供し、以前のフレームワークにコンパイルされたDLLを使用することに違いがないので、VS2010のユーザーにそれを使用させるべきですか?

おかげで、

アップデート: 私はより明確にされている必要がありますし、「必要なフレームワークを必要とは別に」追加されました。言い換えれば、.Net 4プロジェクトから.Net 3.0でコンパイルされたDLLと.Net 4でコンパイルされたDLLを参照することに違いがありますか?両方とも.Net 3.0の構文を使用していると仮定すると、いずれかを使用して何かを得るか失うのですか?

答えて

1

アセンブリが4.0特有の機能を使用していない場合は、おそらく3.0版をコンパイルして両方の機能に使用するのが最も簡単です。 (実際には、フレームワークのバージョン3.0と3.5がそれぞれ2.0のスーパーセットであるため、コードで許可されている場合はバージョン2.0まで下に行くことができます)

ライブラリには異なるバージョンのコードがあります。柔軟性を最大限に高めるために、3.0と4.0のバージョン用に別々のプロジェクトを作成し、別々のコピーを持たずに同じソースファイルを「リンク」することができます。フレームワークごとに異なるコードを記述する必要がある場合は、プリプロセッサディレクティブを使用します。

0

.Net4と.Net3.0に匹敵する.DLLに違いはありますか?

はい、違いがあります。 .NET 4.0のライブラリをコンパイルするとmscorlib, v4.0.0.0とリンクし、ターゲットマシンに.NET 4.0がインストールされていなければ動作しません。一方、.NET 3.5に対してコンパイルすると、mscorlib, v2.0.0.0とリンクし、.NET 3.5以降がインストールされているマシンでも動作します(もちろん、このライブラリには他の特別な依存関係はありません)。

+0

問題を明確にするために質問が更新されました。 – Manuel

関連する問題