【问题标题】:Is there a way to continue using deprecated .net system libraries?有没有办法继续使用已弃用的 .net 系统库?
【发布时间】:2018-10-15 09:25:34
【问题描述】:

我的 c# 项目的一个限制是使用过时的 System.Web.Mail 发送电子邮件。 VS 中的工具提示警告我应该使用System.Net.Mail,但我不能。我预计,在(不久的?)将来,System.Web.Mail 将被弃用。

我的问题是:有没有办法继续使用它,即使它已被弃用?隔离System.Web.dll,添加对它的引用并使用该文件部署项目(就像我现在所做的那样)在弃用后也可以工作吗?

我认为它在弃用后将不起作用,但我不确定,因为我还没有找到任何关于这种情况的文档......

【问题讨论】:

  • 我猜不推荐使用的东西会作为框架补丁/更新的一部分被删除。因此,当服务器管理员决定在某个好日子安装一些补丁并且恰好是包含更改的补丁时,您的生产代码可能会停止工作。
  • 您将当前作为障碍的每个项目改为使用System.Net.Mail,并找到克服它的政治/人民/技术手段。
  • 请注意,已弃用的程序集还可能引用其他(可能已弃用)程序集或特定版本或使用已弃用的 API。仅部署已弃用的程序集并不能保证它会正常工作。

标签: c# .net deprecated obsolete


【解决方案1】:

已弃用(或已过时,在 .NET 中也是如此)只是意味着它不再被开发或支持,而不是它停止工作。您仍然可以使用已弃用的库。只要您使用相同的框架版本,它就会仍然存在。对于框架的未来版本,不能保证这一点,但它可能仍然存在;升级前检查。即便如此,请先进行测试:可能 System.Web.Mail 依赖于 确实 被删除的某些内容,并因此而停止工作。

但是,强烈建议您毕竟找到一种迁移到 System.Net.Mail 的方法,尽管这可能更多的是政治问题而不是技术问题。

【讨论】:

  • 感谢大家的宝贵时间!现在我的观点更清晰了:我将在最新版本的框架上测试我的项目,当它由于某些原因停止工作时,我将评估是否应该继续使用最后一个工作框架或寻找替代方案。您是对的,目前问题只是政治问题,无法通过提供技术替代方案来解决。如您所知,政治问题比技术问题要解决的时间更长……
猜你喜欢
  • 1970-01-01
  • 2011-01-04
  • 2011-10-02
  • 1970-01-01
  • 2012-10-09
  • 2021-11-02
  • 2023-03-09
  • 2021-06-28
  • 1970-01-01
相关资源
最近更新 更多