【问题标题】:SystemConfiguration.dll. Is part of the 2.0 or 3.5 Framework?系统配置.dll。是 2.0 还是 3.5 框架的一部分?
【发布时间】:2012-05-16 16:23:34
【问题描述】:

我有一个 .NET 3.5 C# 控制台应用程序。我需要阅读 App.Config。当我去设置对 system.Configuration.dll 的引用时,我看到即使我的应用程序被编译为 Framework 的 3.5 版,“添加引用”对话框也只显示了 2.0 版的 dll。

于是我在下面找到了这个dll:

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

我决定尝试直接设置对这个 3.5 dll 的引用。完成此操作后,我的项目最终得到了 2.0 版本。

发生了什么事?我认为如果一个应用程序是针对特定版本的框架编译的,那么作为框架一部分的所有 dll 都来自同一个版本。好像我在混合版本。我想我可以同时从旧版本的框架访问 dll 并不太惊讶,但是如果 3.5 文件夹中有更新的版本,为什么不使用它呢?还是这真的是3.5文件夹下的2.0 dll?

【问题讨论】:

    标签: .net


    【解决方案1】:

    System.Configuration.dll 来自框架的 v2.0。您找到的位置中的文件仍然与 .NET 2.0 文件相同,但它只是作为 3.5 客户端配置文件的打包组件存在(客户端配置文件只是完整 .NET 的精简版)。

    .NET 3.5 版只是 2.0 版上的一组扩展,因为它在 2.0 CLR 上运行,因此实现了来自 .NET 框架的 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

    【讨论】:

    • 使用 .NET 4.0 访问 app.config 文件参数的最新首选方法是什么?
    • 我很确定它仍然是通过 System.Configuration.dll 中的System.Configuration.ConfigurationManager.AppSettings
    • remarks here (MSDN)看来它仍然是首选方式。
    【解决方案2】:

    .NET 3.5 基于 .NET 2.0 运行时,这意味着许多程序集仍然是 2.0。

    这是正常的。

    【讨论】:

      猜你喜欢
      • 2023-03-11
      • 2010-12-17
      • 1970-01-01
      • 2019-09-08
      • 1970-01-01
      • 2012-01-16
      • 1970-01-01
      • 2011-07-24
      • 2015-04-25
      相关资源
      最近更新 更多