首页 > 解决方案 > 使用运行时特定的实现有什么好处?

问题描述

dotnet restore --runtime linux-musl-x64从 alpine 容器中运行 a时,我注意到runtime.unix.System*正在下载一些包,当--runtime未指定标志时不会下载这些包。我假设这是因为当runtimedotnet restore 不存在时,它默认any恢复包提供的与平台无关的实现。这是一个正确的假设吗?

我想知道是否在任何地方都记录了使用.Net CORE 包的运行时特定实现的优势?例如System.Net.Socketsruntime.unix.System.Net.Sockets。我会假设因为它们不是通用实现,所以从内存和 CPU 利用率的角度来看它们更有效,但是有任何官方建议或基准吗?

标签: .netasp.net-core.net-corenuget-package-restore

解决方案


这不是优点/缺点的问题。当您指定运行时平台时,您将专门针对该平台,否则,您将针对任何可能的平台。在前一种情况下,引入了唯一必要的运行时组件,而在后一种情况下,只是对目标上可能安装的任何运行时的松散引用。无论哪种方式都将使用这些软件包。有适用于 Windows、Linux、Mac 等的运行时包。使用哪些显然取决于应用程序最终部署的位置,或者当然,运行时标志的规范。


推荐阅读