通常一个 .NET 应用要依赖很多系统和第三方库,发布的形式就是一大堆 dll 文件,在安装部署方面确实不够方便,将应用的所有依赖打包到一个二进制文件一直是个很强的需求。
从 .NET Core 3.0 开始,.NET 开始支持单文件部署。但在运行时,实际上还是需将所有文件解压到文件夹再运行。.NET 5 对此作了改进,运行时不再解压,目前已经非常好用。
单文件部署可以在 C# 项目文件中配置,一个典型的配置如下。
Exe
net6.0
true
true
win-x64
true
true
PublishSingleFile,设置为true 开启单文件部署,false 反之。
SelfContained,单文件部署仍然需要一个 .NET 运行时,需要目标机器上提前安装。SelfContained 设置为 true,可以将 .NET 运行时也打包进文件。好处是无需在目标机器上安装 .NET 运行时,也避免了一些潜在的版本冲突问题。坏处是打包后的单文件会变大,大概增加 80 M 左右。
RuntimeIdentifier,指定操作系统和硬件架构,如果设置了该项,也意味着 SelfContained 被设置为 true。
PublishReadyToRun,是否启用 ReadyToRun,可以显著减小应用加载时间,但通常编译后的 R2R 格式的二进制文件好会更大,因为同时包含了 IL 代码和相同功能的本地代码,原因是有些情况下 IL 代码还必须存在,实践中来看,代码体积会增加 2-3 倍。同时, .NET 应用的性能影响比较复杂,总体来看,规模较大的应用有比较显著的性能提升,规模较小的则不显著
页面更新:2024-04-24
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号