【问题标题】:Can I add a reference to System.Core.dll (.net 3.5) to a .net 2.0 application and use it我可以将 System.Core.dll (.net 3.5) 的引用添加到 .net 2.0 应用程序并使用它吗
【发布时间】:2010-10-23 19:23:50
【问题描述】:

我能否将 System.Core.dll (.net 3.5) 的引用添加到 .net 2.0 应用程序并使用它

我正在尝试通过引用 System.Core.dll 来使用仅在 .net 3.5 中可用的 TimeZoneInfo 类

另外,它们是 .net 2.0 中 TimeZoneInfo 的替代品 (或自定义类)

【问题讨论】:

  • 为什么不直接升级到 .net 3.5?
  • 好吧,这对每个人来说并不总是实用的
  • 请注意,TimeZoneInfo 位于 mscorlib.dll 中,而不是 System.Core.dll 中

标签: c# time timezone


【解决方案1】:

不,你真的不应该。您必须在目标机器上安装 3.5,否则您将在正在运行的程序中遇到不可预知的行为。包括 System.Core.dll 的 3.5 框架依赖于添加到 CLR 2.0 SP1(这是 3.5 框架的一部分)的几个错误修复/功能。如果您针对未打补丁的 CLR 运行,您实际上将运行未经测试的代码,并且可能会遇到几个错误。

【讨论】:

  • 你在这个话题上肯定比大多数人更有资格,但我是否可以建议 should not 而不是 cannot
  • @Rex,我把它改成了“不应该”。我最初添加了不能,因为我认为您无法部署存在法律问题。但我不是律师,所以我取消了我对你“真的”不应该这样做的编程观点:)。
【解决方案2】:

Scott Hanselman wrote a blog post describing 如何在 2.0 框架上运行早期版本的 MVC。他指出,只要您非常小心不要调用任何依赖于特定于 3.0+ 的 CLR 功能(例如 LINQtoSQL)的例程,对 System.Core 的依赖可能就可以了。 p>

正确地在博客文章中贴上了支持的免责声明,它很可能不适合你,但他让它工作了,如果你可以的话,那就为你好了。

【讨论】:

    【解决方案3】:

    我不确定您是否可以使用 System.Core.dll 执行此操作,但我们之前已使用用于 .net 2.0 应用程序的 Linq2Sql dll 执行此操作。 .net 3.5 使用相同版本的 CLR 以及基于 .net 2.0 运行时构建的新程序集。如果您可以获取所有依赖项,它可能会起作用。正如我所说,这对我们使用 Linq2Sql dll 有效,但不能保证适用于所有场景。 (例如,您可能无法让 WPF 在 Windows 2000 上运行,但您可以让 Linq to Objects 工作)

    【讨论】:

      【解决方案4】:

      .net 3.5 在 .net 2.0 运行时上运行。所以你应该可以使用它......但是引用单个 dll 会导致意外行为,因为你不知道 system.core.dll 的所有依赖项......我建议不要这样做......

      【讨论】:

        【解决方案5】:

        您可以这样做,目前为工作工具做同样的事情 - 也可以利用 TimeZoneInfo 的东西。只要这就是你所使用的一切,你就不应该遇到任何问题(至少我没有)。

        但是,我并不完全确定将 System.Core 与您的应用捆绑在一起的合法性。据我所知,你是不允许这样做的。

        我最终将 Mono 中的那个用于使用它的工具。

        【讨论】:

        • 只是一个警告:您可能会遇到关于程序集签名的问题,但更重要的是 Mono 需要它解析的 TZ 文件 - 您需要将位置设置为这些文件才能获取它工作(TimeZoneInfo 上的静态属性执行此操作:TimeZoneDirectory)。你可以从这里获取这些文件:elsie.nci.nih.gov/pub 这些文件是公共领域的,以防有人担心它们周围的许可证
        猜你喜欢
        • 1970-01-01
        • 2011-03-06
        • 2011-05-17
        • 1970-01-01
        • 1970-01-01
        • 2010-11-27
        • 2015-06-14
        • 1970-01-01
        • 2011-10-07
        相关资源
        最近更新 更多