如果我将所有程序集与应用程序分离,从Windows Update分离,如果组件有安全补丁,我将如何更新它们?
当您使用操作系统附带的框架时,您只更新一次,但如果您有一堆网站,我需要单独更新它们吗?我假设它都需要从我的原始源开始,在那里进行更新然后重新部署所有内容,因为如果我只是通过命令行更新部署,而我不对我的源做同样的事情,我’将再次重新部署不安全的位.
解决方法
.NET核心有两种风格
1.便携式应用
便携式应用程序就像您在.NET Framework中使用的那样.您安装了运行时/ SDK,并且您的应用程序仅引用这些核心集,但不会将它们与您的应用程序一起部署.
在那里更新运行时就足够了.优点是较小的部署包.缺点是您需要在部署之前在系统上安装正确版本的运行时.
2.独立应用程序
另一方面的自包含应用程序不需要已安装的运行时,并将使用该应用程序部署必要的系统库.
这里的优点是,您可以部署应用程序并并行运行多个应用程序,这些应用程序使用它们编译的库,而不会产生框架或运行时更新的副作用.
缺点是,更大的规模和缺乏修复和安全更新的中央更新机制.
但最终,问题仍然存在.当您的某个非.NET-Framework依赖项升级或接收安全修复程序时,这两种风格都不能解决问题.
因此,两种版本仍然需要使用更新的库集重建/重新部署应用程序,并且使用旧的.NET Framework需要它.
要升级旧版应用程序或版本,您应该使用源代码管理系统.使用里程碑/版本的标签,因此您可以随时检查标签升级它的依赖关系并提交部署它.
.NET Core也可以与docker一起使用,因此当您使用像Rancher这样的Docker编排工具时,部署应该很容易.
最重要的是,特定的库(如加密)不是通过NuGet / .NET Core Runtime发布的,只是它们的包装器.例如,Cryptography对Windows上的CryptoAPI和Linux / MacOS上的OpenSSH具有本机依赖性.当在OpenSSH中修复错误时,系统更新机制(即apt-get等)将覆盖该错误.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。