下图对于.NET开发人员一定不陌生,尤其是CS架构,客户电脑要运行基于.NET开发的程序,无论是使用C#,还是VB.NET、F#,发布后的程序的运行环境都需要有相应版本的.NET的运行时,否则应用程序将无法正常运行。
BS架构下,在服务器上安装指定版本.NET运行时,工作量可以忽略不计。试想,如果是CS架构,而且是大型的商业软件,客户电脑系统从XP 到 Win11都可能有,如果客户电脑没有指定版本.NET运行时,那么程序则无法正常运行。即使,通过程序引导用户自动安装,也有可能存在安装失败的风险,这对商业软件的发布以及用户体验来说,都是致命的,这也成了很多商业桌面软件在选择技术路径的时候一大顾虑。
可喜的是.NET6的发布和Visual Studio 2022加持,这些都将成为历史。如下图:
在发布设置中部署模式选择“独立”,则部署后的应用程序,本身就会包含相应版本的.NET的运行时,且无需用户安装
文件发布选项中,勾选“生成单个文件”,则发布后的应用程序,引用的绝大多数dll都将打包进exe中,对用户不可见;
勾选ReadyToRun,一定程度上也能提高程序启动速度,关于ReadyToRun的实现原理及优缺点,请参考以下微软官方文档:
https://learn.microsoft.com/zh-cn/dotnet/core/deploying/ready-to-run
下图是采用独立模式+生成单个文件选项部署和常规模式部署,生成的项目文件结构对比,可以看到独立模式部署生成项目大概会大了200多M,则多的应该就是.NET的运行时,虽然发布的项目文件大了200M,但是无需客户机安装指定版本.NET运行时,这对开发体验和用户体验都是极大的改善,
“生成单个文件”这一选项也让应用程序的项目结构看起来更加简洁。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2021-08-06 wos 文献被引_全世界最权威的文献检索工具,这6个检索技巧必须要掌握!
2021-08-06 研究方法|用CiteSpace进行科学文献可视化分析
2018-08-06 java环境变量的配置
2013-08-06 C#串口通信
2008-08-06 C#中动态执行C#脚本
2008-08-06 线程安全
2008-08-06 asp.net缓存状态管理