将Teams Template升级到dotnet core 3.1
为了方便开发者开发Teams应用,我在2018年做了dotnet c#的一套模板,这套模块一共有三种类型,一个是Teams OutgoingWebhook,一个是MessagingExtension,还有一个就是Tab。
今天特地去nuget上看了一下,下载量还很不错,达到了将近9k的下载。看起来的确帮到了不少Teams的开发人员。 :)
当年做的时候的版本是对应dotnet core 2.1,去年年底dotnet团队又出了继2.1 LTS后的新一个LTS:3.1,经过半年的稳定,修补和改进,目前是5月19日发布的3.1.4版本。所以我上两周把我的Teams模板也升级到了3.1。
我这里讲一下我升级的主要内容:如果你的项目原来是用我的Teams Template生成,目前也想升级到.net 3.1,那希望这些信息对你有帮助:
csproj文件
- 将
TargetFramework
改成netcoreapp3.1
- 将
Microsoft.Bot.Builder
包升级到4.9.3
Program.cs文件
- 改用标准的 3.1 模板的写法
- 另外如果大家用过SonarQube的话,可能知道之前的写法会有code smells,我做了一些改进,把Program声明成static class,并且去掉了Main函数的参数
public static class Program{public static void Main(){CreateHostBuilder(null).Build().Run();}public static IHostBuilder CreateHostBuilder(string[] args) =>Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder =>{webBuilder.UseStartup<Startup>();});}
Startup.cs文件
- 改用3.1的mvc写法:
AddControllers()
,UseRouting()
和UseEndpoints()
- 把
IHostingEnvironment
改成了IWebHostEnvironment
希望这次的升级能够给更多的Teams开发人员带来方便,更希望能吸引/帮忙更多的开发人员参与到Teams开发中来。
MicrosoftTeams.Templates nuget
MicrosoftTeams.Templates源代码
将Teams Template升级到dotnet core 3.1相关推荐
- dotnet core 2.1 使用阶梯编译
在 dotnet core 2.1 可以使用阶梯编译的方法,从 dotnet framework 开始,在代码的所有方法在第一次进入的时候就需要使用 JIT 进行编译为本机的代码.可以看到代码是在第一 ...
- dotnet core 应用是如何跑起来的 通过AppHost理解运行过程
在 dotnet 的输出路径里面,可以看到有一个有趣的可执行文件,这个可执行文件是如何在框架发布和独立发布的时候,找到 dotnet 程序的运行时的,这个可执行文件里面包含了哪些内容 在回答上面的问题 ...
- centos 6.5 安装dotnet core 2.2
.net core 官网地址 https://dotnet.microsoft.com/download 本次安装版本为.net core SDK v2.2.101 1.查看系统版本, 升级系统基本l ...
- Dotnet Core应用跨框架版本运行
有时候,我们真想用新框架,可也真不想改代码. 有一个前置的知识需要了解,就是微软 Dotnet Core 框架的版本体系.我前边的文章「Dotnet Core使用特定的SDK&Runtim ...
- dotNet Core 3.1 使用 Aspose (部署 Docker)
在之前的文章<dotNET Core中使用Aspose(部署Docker)>中介绍了在 dotNet Core2.1 中使用 Aspose ,并部署到 Docker 中,现在 dotNET ...
- Dotnet Core使用特定的SDKRuntime版本
Dotnet Core的SDK版本总在升级,怎么使用一个特定的版本呢? 假期过完了,心情还在.今天写个短的. 一.前言 写这个是因为昨天刷微软官方文档,发现global.json在 SDK 3.0 ...
- MongoDB via Dotnet Core数据映射详解
用好数据映射,MongoDB via Dotnet Core开发变会成一件超级快乐的事. 一.前言 MongoDB这几年已经成为NoSQL的头部数据库. 由于MongoDB free schema ...
- Dotnet core基于ML.net的销售数据预测实践
ML.net已经进到了1.5版本.作为Microsoft官方的机器学习模型,你不打算用用? 一.前言 ML.net可以让我们很容易地在各种应用场景中将机器学习加入到应用程序中.这是这个框架很重要的 ...
- 一文说通Dotnet Core的后台任务
这是一文说通系列的第二篇,里面有些内容会用到第一篇中间件的部分概念.如果需要,可以参看第一篇:一文说通Dotnet Core的中间件 一.前言 后台任务在一些特殊的应用场合,有相当的需求. 比方, ...
最新文章
- java处理视频_Java使用FFmpeg处理视频[视频直播三]
- 自定义元素探秘及构建可复用组件最佳实践
- NopCommerce架构分析-依赖注入
- Linux 内核详解以及内核缓冲区技术
- 【PC工具】更新系统运行库一键安装,常用USB转串口芯片CP210x驱动,CH340G驱动安装有可能遇到的问题及解决办法...
- scala 主构造函数_Scala-构造函数
- 如何防止网页被Demo
- 【bzoj1022】[SHOI2008]小约翰的游戏John 博弈论
- vs C++实现Socket通信、添加ws2_32.lib 动态链接库
- CountDownLatch分析(AQS共享锁)
- idea代码格式美化快捷键
- 期末知识点复习——概率论与数理统计(5)
- BMZCTF-MISC(一) WriteUp
- 5-(4-硝基苯基)-10,15,20-三苯基卟啉NTPPH2/NTPPZn/NTPPMn/NTPPFe/NTPPNi/NTPPCu/NTPPCd/NTPPCo等金属配合物
- LVGL8学习之msgbox
- ABBYY FineReader 14
- mysql 1062_mysql #1062 报错
- 什么缩写是mzj_mzjh是什么意思,mzjh缩写代表什么意思,mzjh是什么含义
- Python 全栈系列92 - memos的字段设计
- 智能硬件行业产品经理
热门文章
- 【基础】有关T-SQL的10个好习惯
- Docker---问题1:bash: vi: command not found/bash: vim: command not found
- ux的重要性_UX中清晰的重要性
- Vue 团队公开快如闪电的全新脚手架工具,未来将替代 Vue-CLI,才300余行代码,学它!...
- 从Vue.js源码中我学到的几个实用函数
- yum安装Docker失败No package docker available
- 《大话数据结构》读后总结(九)
- Java基础查漏补缺:(String篇)一个面试题问倒了我,原来String并不简单
- CYQ.Data 数据框架 V4.0 开源版本发布(源码提供下载,秋色园V2.5版本标配框架)
- java中文乱码解决之道(五)—–java是如何编码解码的