为了方便开发者开发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相关推荐

  1. dotnet core 2.1 使用阶梯编译

    在 dotnet core 2.1 可以使用阶梯编译的方法,从 dotnet framework 开始,在代码的所有方法在第一次进入的时候就需要使用 JIT 进行编译为本机的代码.可以看到代码是在第一 ...

  2. dotnet core 应用是如何跑起来的 通过AppHost理解运行过程

    在 dotnet 的输出路径里面,可以看到有一个有趣的可执行文件,这个可执行文件是如何在框架发布和独立发布的时候,找到 dotnet 程序的运行时的,这个可执行文件里面包含了哪些内容 在回答上面的问题 ...

  3. centos 6.5 安装dotnet core 2.2

    .net core 官网地址 https://dotnet.microsoft.com/download 本次安装版本为.net core SDK v2.2.101 1.查看系统版本, 升级系统基本l ...

  4. Dotnet Core应用跨框架版本运行

    有时候,我们真想用新框架,可也真不想改代码.   有一个前置的知识需要了解,就是微软 Dotnet Core 框架的版本体系.我前边的文章「Dotnet Core使用特定的SDK&Runtim ...

  5. dotNet Core 3.1 使用 Aspose (部署 Docker)

    在之前的文章<dotNET Core中使用Aspose(部署Docker)>中介绍了在 dotNet Core2.1 中使用 Aspose ,并部署到 Docker 中,现在 dotNET ...

  6. Dotnet Core使用特定的SDKRuntime版本

    Dotnet Core的SDK版本总在升级,怎么使用一个特定的版本呢?   假期过完了,心情还在.今天写个短的. 一.前言 写这个是因为昨天刷微软官方文档,发现global.json在 SDK 3.0 ...

  7. MongoDB via Dotnet Core数据映射详解

    用好数据映射,MongoDB via Dotnet Core开发变会成一件超级快乐的事.   一.前言 MongoDB这几年已经成为NoSQL的头部数据库. 由于MongoDB free schema ...

  8. Dotnet core基于ML.net的销售数据预测实践

    ML.net已经进到了1.5版本.作为Microsoft官方的机器学习模型,你不打算用用?   一.前言 ML.net可以让我们很容易地在各种应用场景中将机器学习加入到应用程序中.这是这个框架很重要的 ...

  9. 一文说通Dotnet Core的后台任务

    这是一文说通系列的第二篇,里面有些内容会用到第一篇中间件的部分概念.如果需要,可以参看第一篇:一文说通Dotnet Core的中间件   一.前言 后台任务在一些特殊的应用场合,有相当的需求. 比方, ...

最新文章

  1. 《设计的品格 探索×呈现×进化的InDesign美学》—第1课1.4节单位和度量
  2. 【ZZ】Linux常用指令
  3. 计算机系统的发展史、基本组成、工作原理
  4. boost::geometry::model::segment用法的测试程序
  5. JDB2导致磁盘io使用率高
  6. Python模块: 命令行解析optionparser
  7. mvc模式 mysql做网页_SpringMVC + Hibernate + MySQL 的简易网页搭建(Control实现篇)
  8. bat文件 cmd命令获取系统日期格式
  9. 一些代码规范(收集)
  10. JAVA开发做不出来_为什么一道很简单的编程题做不出来?
  11. 腾讯云和阿里云短信接口区别
  12. 程序员常用的画图软件推荐
  13. 转载:细数飞机设计专用软件,知道5个你就很牛了
  14. pr电子相册制作思路及常用快捷键
  15. python暑假培训成都
  16. 第一个Andriod应用
  17. python第三方库bs4库实例之爬取古诗词网上诗歌
  18. 九宫八阵图之虐翼阵——网闸
  19. 29、光敏电阻ADC输入实验
  20. asp mysql 不用 dsn,另类: asp不用DSN访问数据库

热门文章

  1. 计算机硬件:关于CPU的12个硬核干货!
  2. 这几款前端必备构建工具合辑,我们帮你整理好了!
  3. EF调用存储过程实现分页
  4. python高性能写法_py 高性能低级,高级写法思考
  5. 传统的线性降维方法效果不佳。_机器学习西瓜书简明笔记(11)降维与度量学习...
  6. IDEA 快捷键终极大全
  7. 数据库---聚合查询
  8. 从头开始vue创建项目_我正在以设计师的身份开始一个被动的收入项目。 从头开始。...
  9. 1个月增长15000 star,zx 库写shell脚本真不错~
  10. 1、类型和语法——类型