使用环境变量来配置 Teams App 的 manifest

上篇文章我们介绍了 Teams 的 Developer Portal,今天我想分享一个dev portal里一个比较实用的功能。这个功能在之前的 App Studio 里没有。这个功能叫 Environment variables。

当我们真实开发一个 teams app的时候,肯定有自己的开发环境,测试环境,和生产环境,比如一旦一个app发布到 teams store之后,开发人员再继续开发第二个版本的时候肯定不能徐印象生产环境了。需要有一个用于开发测试的测试app。测试app的manifest里很多设置肯定和生产环境很类似,但是也需要有一些不同,这时候,Environment variables就特别有用了。

我们来看看具体如何做。我们先进入 Developer Portal 的 Apps 菜单,创建一个新的 app。

然后在左边的菜单里选择 Environments。因为是新的 app,所以默认没有任何的环境。

点击 “Create your first environment” 按钮,输入一个名字,我这里先创建一个 DEV 环境。

然后再在 DEV 环境下创建一个变量,叫 MyFullName,给它一个值 “TonyApp - DEV”。

为了后面可以做比较,我们额外再创建两个环境 UAT 和 PROD,在UAT里的 MyFullName 设置成 “TonyApp - UAT”。

在 PROD 生产环境里我们就把 MyFullName 设置成正式的名字 “TonyApp”。 

然后,我们在左边的菜单里选择 Basic Information,在 “Full name” 栏里输入 “{ {My”,还没有输完,我们就可以看到出现了下拉提示,Developer Portal 会把所有当前环境的变量都列举出来,让我们选择。

选择 MyFullName 之后,我们还可以把鼠标移到右侧的小图标上,就会出现这个变量在当前环境里的值,因为我们现在是 PROD 环境,所以就显示出了 PROD 的值。

重新回到 Environments 界面,我们改成 DEV 环境。

再回到 Basic Information 的时候,就可以看到值已经变成了 “TonyApp - DEV”。

不单单在界面里,我们可以值变化了,实际上在app 的manifest文件里,这个值也发生了变化,我们到 “Publish to store” 菜单,点击下图的 “Download app package” 按钮。

下载一个zip文件,解压后,打开 manifest.json 文件。可以看到在manifest文件里,已经是 DEV 环境的变量的值了。

出了环境变量,我们也可以设置一些全局变量,这些变量的值不会随着环境的变化而变化。可以作为一些变量的默认值。

我们再回到 “Basic Information”,输入 “{ {“,可以看到下拉的提示列表里,已经有了我们上一步创建的全局变量 DeveloperName 

选择后,再下载 manifest.json 文件看一下,可以发现 developer 的名字已经变成了变量的值。 

我觉得环境变量在一个真实的开发流程里非常有用。让不同环境里的manifest得到有效的编辑和管理。我准备把我的teams app LuckyDraw 也改成使用环境变量来配置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/277832.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Unity优化]批处理03:静态批处理

[Unity优化]批处理03:静态批处理 原理: 运行时,把需要进行静态批处理的网格合并到一个新的网格中。虽然只进行一次合并操作,但是会占用更多的内存来存储合并后的网格,并且被静态批处理的物体无法移动旋转缩放 要使用静…

JS获取IP地址

HTML代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><script src"https://unpkg.com/vue/dist/vue.js"></script></head><body><div id"vm&quo…

1小时玩爆趣头条自媒体平台,增粉实战操作分享

做自媒体的人最关注的就是每天自己账号的后台数据&#xff0c;因为数据决定当天的收益。因此只要每天能达到几十万的数据&#xff0c;相信对于做自媒体的朋友来说&#xff0c;一个月下来&#xff0c;最少也有1万以上的收入。目前&#xff0c;自媒体平台能赚钱的平台有很多&…

隧道6in4 和隧道6to4(GNS3)

隧道6in4实验配置 拓扑图 Device Interface IP Address&#xff08;IPv6&#xff09; R1 F 0/0 10.1.81.1 F 0/1 2001:db8:cafe:81::10 R2 F 0/0 10.81.1.2 F 0/1 172.81.1.2 R3 F 0/0 172.81.1.3 F 0/1 2001:DB8:ACE:81::20 R4 F 0/0 2001:db8:cafe:81::4…

hadoop常用命令总结

2019独角兽企业重金招聘Python工程师标准>>> 一、前述 分享一篇hadoop的常用命令的总结&#xff0c;将常用的Hadoop命令总结如下。 二、具体 1、启动hadoop所有进程 start-all.sh等价于start-dfs.sh start-yarn.sh 但是一般不推荐使用start-all.sh(因为开源框架中内…

几道web题简单总结

拖了好长时间&#xff0c;总结一下这一段时间做的几道值得记录一下的题目&#xff0c;有的没做出来&#xff0c;但是学习到了新的东西 1.homebrew event loop ddctf的一道题目&#xff0c;学到了python eval函数的用法&#xff0c;首先分析题目&#xff1a; # -*- encoding: ut…

.NET中RabbitMQ的使用

.NET中RabbitMQ的使用 概述 MQ全称为Message Queue, 消息队列&#xff08;MQ&#xff09;是一种应用程序对应用程序的通信方法。RabbitMQ是一个在AMQP基础上完整的&#xff0c;可复用的企业消息系统。他遵循Mozilla Public License开源协议。AMQP(高级消息队列协议) 是一个异步…

SQL Server死锁诊断--同一行数据在不同索引操作下引起的死锁

死锁概述 对于数据库中出现的死锁&#xff0c;通俗地解释就是&#xff1a;不同Session&#xff08;会话&#xff09;持有一部分资源&#xff0c;并且同时相互排他性地申请对方持有的资源&#xff0c;然后双方都得不到自己想要的资源&#xff0c;从而造成的一种僵持的现象。当然…

python下载安装搭建

python官网下载python运行环境&#xff08;https://www.python.org/downloads/&#xff09;&#xff0c;建议下载稳定版本&#xff0c;不推荐使用最新版本 安装 然后我们打开CMD&#xff0c;在里面输入python&#xff0c;就可以直接进入进行编码了 如果输入python出现下面错误 …

Teams Bot App Manifest 文件解析

这篇文章我们继续以 Hello World Bot 这个 sample 来讲一下 manifest template。 实际上在 Teams app 开发的时候&#xff0c;有 manifest 的概念&#xff0c;manifest 是用来说明这个 teams app 的一些基本信息和配置信息&#xff0c;比如 app 的名字&#xff0c;app有哪些能…

Cordova入门系列(三)Cordova插件调用 转发 https://www.cnblogs.com/lishuxue/p/6018416.html...

Cordova入门系列&#xff08;三&#xff09;Cordova插件调用 版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请注明出处 上一章我们介绍了cordova android项目是如何运行的&#xff0c;这一章我们介绍cordova的核心内容&#xff0c;插件的调用。演示一个例子&#xf…

shell脚本传可选参数 getopts 和 getopt的方法

写了一个shell脚本&#xff0c;需要向shell脚本中传参数供脚本使用&#xff0c;达到的效果是传的参数可以是可选参数 下面是一个常规化的shell脚本&#xff1a; echo "执行的文件名为: $0";echo "第一个参数名为: $1";echo "第二个参数名为: $2"…

Teams Tab App 代码深入浅出 - 配置页面

上一篇文章我们使用Teams Toolkit 来创建、运行 tab app。这篇文章我们深入来分析看一下tab app 的代码。 先打开代码目录&#xff0c;可以看到在 src 目录下有入口文件 index.tsx&#xff0c;然后在 components 目录下有更多的一些 tsx 文件&#xff0c;tsx 是 typescript的一…

labelme标注的json文件数据转成coco数据集格式(可处理目标框和实例分割)

这里主要是搬运一下能找到的 labelme标注的json文件数据转成coco数据集格式&#xff08;可处理目标框和实例分割&#xff09;的代码&#xff0c;以供需要时参考和提供相关帮助。 1、官方labelme实现 如下是labelme官方网址&#xff0c;提供了源代码&#xff0c;以及相关使用方…

EpSON TM-82II驱动在POS系统上面安装问题处理

按照品牌名称&#xff0c;在网上下载的安装包为apstmt82.rar 下面讲解一下&#xff0c;如何的解决爱普生打印机在POS机器上面的安装问题&#xff0c;这个算是一个比较奇特的故障问题&#xff0c;不像其它的新北冰洋&#xff08;SN3C&#xff09;的U80_U80II&#xff0c;SeNor的…

打印图片的属性和实现另存图片功能以及使用numpy

上一篇我们已经学了如何读取图片的功能了以及和opencv的环境搭建了&#xff0c;今天接着来学习&#xff0c;哈哈哈&#xff0c;今天刚好五一&#xff0c;也没闲着&#xff0c;继续学习。 1、 首先我们来实现打印出图片的一些属性功能&#xff0c; 先来看一段代码&#xff1a; 1…

Ubuntu 18.04下命令安装VMware Tools

2019独角兽企业重金招聘Python工程师标准>>> sudo apt-get upgrade sudo apt-get install open-vm-tools-desktop -y sudo reboot 转载于:https://my.oschina.net/u/574036/blog/1829455

Qfile

打开方式&#xff1a; 1 void AddStudents::write_to_file(QString src){2 QFile file("stu.txt");3 if (!file.open(QIODevice::Append | QIODevice::Text)){4 QMessageBox::critical(this,"打开文件错误","确认");5 r…

IDEA svn 菜单不见了,解决方法

2019独角兽企业重金招聘Python工程师标准>>> 参考地址: http://www.cnblogs.com/signheart/p/193448a98f92bd0cc064dbd772dd9f48.html,我是第二种方法解决的! 转载于:https://my.oschina.net/liuchangng/blog/1829679

苏宁易购:Hadoop失宠前提是出现更强替代品

在笔者持续调研国内Hadoop生态系统生存现状的同时&#xff0c;KDnuggets发布的2018年数据科学和机器学习工具调查报告再次将“Hadoop失宠”言论复活。报告一出&#xff0c;“Hadoop被抛弃”几个字瞬时成为各大标题党的最爱&#xff0c;充斥在不同的新闻平台。这些报告和数据是否…