1

.NET 3.5 C#コンソールアプリがあります。App.Configを読む必要があります。system.Configuration.dllへの参照を設定しようとすると、アプリがフレームワークのバージョン3.5としてコンパイルされていても、[参照の追加]ダイアログには2.0バージョンのdllしか表示されないことがわかりました。

だから私は下にdllを見つけました:

C:\ Program Files \ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v3.5 \ Profile \ Client

この3.5dllへの参照を直接設定してみることにしました。これを行った後、私のプロジェクトは2.0バージョンになりました。

何が起こっている?アプリがフレームワークの特定のバージョンに対してコンパイルされた場合、フレームワークの一部であったすべてのdllはすべて同じバージョンのものであると思いました。バージョンを混ぜているようです。古いバージョンのフレームワークからdllに同時にアクセスできることにはそれほど驚かないと思いますが、3.5フォルダーに新しいバージョンがある場合、なぜそれを使用しないのですか?それとも、これは本当に3.5フォルダに配置された2.0 dllですか?

ここに画像の説明を入力してください

4

2 に答える 2

2

System.Configuration.dllは、フレームワークのv2.0からのものです。見つけた場所のファイルは.NET2.0ファイルと同じですが、3.5クライアントプロファイルのパッケージ化されたコンポーネントとして存在します(クライアントプロファイルは完全な.NETの縮小版です)。

.NETのバージョン3.5は、2.0 CLRで実行されるバージョン2.0の拡張機能のセットであり、.NET FrameworkからのDLLの2.0、3.0、および3.5バージョンを実装します。System.Configuration.dllのクラスが導入され、現在もすべてバージョン2.0のフレームワークであるため、DLL自体は常に2.0.0.0になります。

詳細については、http://en.wikipedia.org/wiki/.NET_Framework_3.5#.NET_Framework_3.5をご覧ください。

于 2012-05-16T16:47:57.670 に答える
1

.NET3.5は.NET2.0ランタイムに基づいています。つまり、アセンブリの多くはまだ2.0です。

これは正常です。

于 2012-05-16T16:48:09.083 に答える