Teams 工具包命令行界面

重要

  • Teams 工具包 CLI v3 以 beta 版本提供。
  • 建议使用 Teams 工具包 CLI v3 生成 Teams 应用。 TeamsFx CLI v1 和 TeamsFx CLI v2 即将弃用。

Microsoft Teams 工具包命令行界面 (Teams 工具包 CLI) 是一种基于文本的命令行接口,可加速 Microsoft Teams 应用程序开发。 它旨在在构建 Teams 应用程序时提供以键盘为中心的体验。 有关详细信息,请参阅 源代码npm 包

Teams 工具包 CLI 封装常见功能和集成模式,例如简化对 Microsoft 标识的访问。 可以使用零配置生成适用于 Teams 的应用。

下面是 Teams 工具包 CLI main功能的列表:

  • Teams 工具包 CLI 协作:使开发人员和项目所有者能够邀请其他协作者加入 Teams 工具包 CLI 项目。 可以协作调试和部署 Teams 工具包 CLI 项目。

  • Teams 工具包 CLI:加速 Teams 应用程序开发,并启用 CI/CD 方案,可在其中将 CLI 集成到脚本中实现自动化。

  • 从模板和示例创建新的 Teams 应用程序。

  • 通过将自定义应用上传到 Teams、Outlook 和 Microsoft 365 应用来预览 Teams 应用程序。

  • 预配云资源并将应用程序部署到 Azure。

  • 验证、打包和发布 Teams 应用程序。

  • 管理多个环境、Microsoft Entra应用和 Teams 应用注册。

入门

npm 安装 teamsapp-cli,并运行 teamsapp -h 以检查所有可用命令:

  npm install -g @microsoft/teamsapp-cli
  teamsapp -h

屏幕截图显示了 npm 包的安装。

支持的命令

下表列出了帮助开发人员生成和管理 Teams 应用程序的受支持命令:

命令 说明
teamsapp doctor 创建 Teams 应用程序的先决条件。
teamsapp new 创建新的 Teams 应用程序。
teamsapp add 将功能添加到 Teams 应用程序。
teamsapp auth 管理云服务帐户的身份验证。 支持的云服务是 Azure 和 Microsoft 365。
teamsapp entra-app 管理当前应用程序中的Microsoft Entra应用。
teamsapp env 管理环境。
teamsapp help 显示 Teams 工具包 CLI 帮助。
teamsapp install 跨 Microsoft 365 上传特定应用程序包的自定义应用。
teamsapp launchinfo 获取已获取的 Microsoft 365 应用的启动信息。
teamsapp list 列出可用的 Teams 应用程序模板和示例。
teamsapp provision 在 或 teamsapp.local.ymlteamsapp.yml运行预配阶段。
teamsapp deploy 在 或 teamsapp.local.ymlteamsapp.yml运行部署阶段。
teamsapp package 将 Teams 应用构建到包中以进行发布。
teamsapp validate 验证当前应用程序。
teamsapp publish 将应用发布到 Teams。
teamsapp preview 预览当前应用程序。
teamsapp update 将应用清单 (以前称为 Teams 应用清单) 更新到 Teams 开发人员门户。
teamsapp upgrade 升级项目以使用最新版本的 Microsoft Teams 工具包。
teamsapp collaborator 在同一项目中与其他开发人员协作。
teamsapp uninstall 删除已获取的 Microsoft 365 应用。

屏幕截图显示了可用命令的列表。

全局选项

以下是可用于每个命令的全局选项:

选项 说明
--version -v 显示 Teams 工具包 CLI 的版本。
--help -h 为 Teams 工具包 CLI 提供帮助。
--interactive -i 在交互模式下执行命令。 默认值为 true。
--debug 打印调试信息。 默认值为 false。
--verbose 打印诊断信息。 默认值为 false。
--telemetry 启用遥测。 默认值为 true。

屏幕截图显示了全局选项的列表。

交互模式

命令具有不同的默认交互模式。 默认情况下,某些命令是交互式的,有些命令是非交互式的。 若要确定命令的默认交互模式,请将 选项与特定命令结合使用 -h

teamsapp doctor

命令 teamsapp doctor 检查生成 Teams 应用程序所需的先决条件。

teamsapp new

默认情况下,该 teamsapp new 命令在交互模式下运行,并提供创建新 Teams 应用程序的指南。 若要在非交互模式下工作 teamsapp new ,请将 --interactive 标志设置为 false

teamsapp new   
teamsapp new -i false
命令 说明
teamsapp new sample 从预先存在的示例(作为模板)创建新的 Teams 应用。
teamsapp list samples 显示所有可用预先存在的示例的列表。

teamsapp new 参数

下表列出了可用于 teamsapp new的参数:

参数 必需 说明
--app-name -n Teams 应用程序的名称。
--capability -c 选择“Teams 应用程序功能”。 可用选项包括 botai-botai-assistant-bot。 使用 teamsapp list templates 查看所有可用选项。
--programming-language -l 项目的编程语言。 可用选项包括 javascripttypescriptcsharp。 默认值为 javascript
--folder -f 项目目录。 将在此目录下创建具有应用名称的子文件夹。 默认值为 ./
--spfx-framework-type -k 如果选择了 framework 功能,则适用。 可用选项包括 minimalreactnone。 默认值为 react
--spfx-web part-name -w SharePoint 框架 Web 部件的名称。 默认值为 helloworld
--spfx-folder 包含现有SharePoint 框架解决方案的目录或路径。
--me-architecture -m 基于搜索的消息扩展的体系结构。 可用选项包括 new-apiapi-specbot。 默认值为 new-api
--openapi-spec-location -a OpenAPI 说明文档位置。
--api-operation -o 选择“操作” (Teams 可以与之交互的) 。
--bot-host-type-trigger -t 如果选择了 Chat Notification Message 功能,则适用。 可用选项包括 http-restifyhttp-webapihttp-and-timer-functions。 默认值为 http-restify
--spfx-solution -s 创建或导入现有SharePoint 框架解决方案。 可用选项为 newimport。 默认值为 new
--spfx-install-latest-package 安装最新版本的 SharePoint 框架。 默认值为 true

屏幕截图显示了 teamsapp 新参数。

teamsapp new 场景

下面是使用 teamsapp new控制所有参数的方案列表:

  • HTTP 触发的通知机器人,计时器在非交互模式下触发。

    teamsapp new -c notification -t timer-functions -l typescript -n myapp -i false
    
  • 在非交互模式下导入现有SharePoint 框架解决方案。

    teamsapp new -c tab-spfx -s import --spfx-folder -n myapp -i false
    

teamsapp add

Teams 应用程序支持的功能。

命令 说明
Integrate SPFxWebPart with Teams App 将自动托管SharePoint 框架 (SPFx) Web 部件合并到 Teams 中。 自动承载的 SPFx Web 部件是自动托管在 SharePoint 中的组件。

屏幕截图显示了 teamsapp add 命令。

teamsapp auth

下表列出了 Teams 应用程序的云服务帐户:

命令 说明
teamsapp auth list 显示所有连接的 Microsoft 365 和 Azure 帐户。
teamsapp auth login 登录到所选云服务。 可用选项包括 Microsoft 365 或 Azure。
teamsapp auth logout 注销所选云服务。 可用选项包括 Microsoft 365 或 Azure。

屏幕截图显示了 teamsapp auth 命令。

teamsapp entra-app

管理当前应用程序中的Microsoft Entra应用。

命令 说明
update 汇报当前应用程序中的 Teams Entra 应用。

屏幕截图显示 teamsapp entra-app 命令。

teamsapp env

管理 Teams 应用程序环境。

命令 说明
teamsapp env add 通过复制当前环境添加新环境。
teamsapp env list Lists所有可用环境。

屏幕截图显示了 teamsapp env 命令。

teamsapp env 场景

通过从现有开发环境复制来创建新环境:

teamsapp env add staging --env dev

teamsapp list

显示可用的 Teams 应用模板和示例。

teamsapp list 参数

下表列出了可用于 teamsapp list的参数:

命令 说明
--samples 显示可用 Teams 应用示例的列表。
--templates 显示可用 Teams 应用模板的列表。

屏幕截图显示 teamsapp 列表命令。

teamsapp help

命令 teamsapp help 显示所有可用于 Teams 工具包 CLI 的命令。

屏幕截图显示了 teamsapp 帮助命令。

teamsapp provision

命令 teamsapp provision 在 中 teamsapp.yml运行预配阶段。

若要在 中 teamsapp.local.yml触发预配阶段,请运行 teamsapp provision --env local

teamsapp provision 参数

下表列出了可用于 teamsapp provision的参数:

参数 必需 说明
--env 为项目选择环境。
--folder -f 选择项目的根文件夹。 默认为 ./

teamsapp deploy

命令 teamsapp deploy 在 中 teamsapp.yml运行部署阶段。

若要在 中 teamsapp.local.yml触发部署阶段,请运行 teamsapp deploy --env local

teamsapp deploy 参数

下表列出了可用于 teamsapp deploy的参数:

参数 必需 说明
--env 指定项目环境。
--folder -f 指定项目的根文件夹。 默认为 ./

teamsapp package

将 Teams 应用构建到包中以进行发布。

teamsapp package 参数

下表列出了可用于 teamsapp package的参数:

参数 必需 说明
--env 选择项目的现有环境。
--env-file 选择定义清单模板文件中要替换的变量的 .env 文件。
--teams-manifest-file 选择清单文件路径。 默认为 ${folder}/appPackage/manifest.json
--output-package-file 选择压缩的应用包的输出路径。 默认为 ${folder}/appPackage/build/appPackage.${env}.zip
--output-manifest-file 选择应用清单文件的输出路径。 默认为 ${folder}/appPackage/build/manifest.${env}.json
--folder -f 选择项目的根文件夹。 默认为 ./

teamsapp validate

使用应用清单架构或验证规则验证 Teams 应用。

teamsapp validate 参数

下表列出了可用于 teamsapp validate的参数:

参数 必需 说明
--env 选择项目的现有环境。
--env-file 选择要在应用清单模板文件中替换的变量的 .env 文件。
--teams-manifest-file 选择输入应用清单文件路径。 默认为 ${folder}/appPackage/manifest.json
--package-file 选择压缩的 Teams 应用包文件的路径。
--output-package-file 选择输出压缩的 Teams 应用包文件的路径。 默认为 ${folder}/appPackage/build/appPackage.${env}.zip
--output-manifest-file 选择输出应用清单文件的路径。 默认为 ${folder}/appPackage/build/manifest.${env}.json
--folder -f 选择项目的根文件夹。 默认为 ./

teamsapp preview

命令 teamsapp preview 允许你在开发期间预览 Teams 应用。 此命令提供应用的实时视图,帮助你在部署之前识别和修复问题。

teamsapp preview 参数

下表列出了可用于 teamsapp preview的参数:

参数 必需 说明
--folder 指定项目的根文件夹。 默认为 ./
--env 指定项目的现有环境。 默认为 local
--teams-manifest-file -t 指定应用清单模板文件路径。 默认为 ${folder}/appPackage/manifest.json
--run-command -c 指定用于启动本地服务的命令,并且仅适用于 local 环境。 如果未定义, teamsapp 请使用项目类型 (npm run dev:teamsappdotnet runfunc start) 自动检测的服务。 如果为空, teamsapp 则跳过启动本地服务。
--running-pattern -p 启动服务的就绪信号输出。 local仅适用于环境。 如果未定义, teamsapp 请使用默认的通用模式 (启动、成功、完成、崩溃、失败) 。 如果为空, teamsapp 则将进程启动视为就绪信号。
--open-only -o local仅适用于环境。 如果为 true,则直接打开 Web 客户端,而不启动本地服务。 默认为 false
--m365-host -m 在 Teams、Outlook 或 Microsoft 365 应用中预览应用程序。 可用选项包括 teamsoutlookoffice。 默认值为 teams
--browser -b 选择浏览器以打开 Teams Web 客户端。 可用选项包括 chromeedgedefault。 默认为 default
--browser-arg -ba 要传递给浏览器的参数。 例如,--browser-args="--guest
--exec-path -ep 执行命令时添加到系统环境变量 PATH 的路径。 默认值为 devTools/func

teamsapp preview 场景

命令teamsapp preview必须在 和 teamsapp deploy之后teamsapp provision使用。

以下列表提供了 的 teamsapp preview常见方案:

  • 本地预览版:下面是使用本地预览版的依赖项:

    • Node.js
    • .NET SDK
    • Azure Functions Core Tools
    teamsapp preview --env --local
    teamsapp preview --env --local --browser chrome
    
  • 远程预览

    teamsapp preview --env --remote
    teamsapp preview --env --remote --browser edge
    

    注意

    React 等后台服务的日志保存在 ~/.fx/cli-log/local-preview/ 中。

teamsapp publish

命令 teamsapp publish 在 中 teamsapp.yml运行发布阶段。

teamsapp publish 参数

下表列出了可用于 teamsapp publish的参数:

参数 必需 说明
--env 为项目选择环境。
--env-file 选择定义应用清单模板文件的变量的 .env 文件。
--teams-manifest-file 选择输入应用清单文件的路径。 默认为 ${folder}/appPackage/manifest.json
--package-file 选择 Teams 应用包 zip 文件的路径。
--output-package-file 选择输出 Teams 应用包 zip 文件的路径。 默认为 ${folder}/appPackage/build/appPackage.${env}.zip
--output-manifest-file 在应用清单文件中选择输出的路径。 默认为 ${folder}/appPackage/build/manifest.${env}.json
--folder -f 选择项目的根文件夹。 默认为 ./

teamsapp collaborator

检查、授予和列出用户访问和管理 Teams 应用程序和Microsoft Entra应用程序的权限。

命令 说明
teamsapp collaborator status 显示项目的当前权限状态。
teamsapp collaborator grant 授予用户访问项目的权限。

屏幕截图显示 teamsapp 协作者命令。

teamsapp collaborator status 参数

下表列出了可用于 teamsapp collaborator status的参数:

参数 必需 说明
--env 选择预先存在的项目环境。
--folder -f 选择项目的根文件夹。 默认为 ./
--teams-manifest-file -t 选择应用清单模板文件的路径。 默认为 ${folder}/appPackage/manifest.json
--entra-app-manifest-file -a 选择 Entra 清单模板文件的路径。 默认为 ${folder}/aad.manifest.json
--all -a 显示所有协作者。

teamsapp collaborator grant 参数

下表列出了可用于 teamsapp collaborator grant的参数:

参数 必需 说明
--env 选择现有项目环境。
--folder -f 选择项目的根文件夹。 默认为 ./
--email 输入协作者的电子邮件地址。
--teams-manifest-file -t 选择应用清单模板文件的路径。 默认为 ${folder}/appPackage/manifest.json
--entra-app-manifest-file -a 选择 Entra 应用清单文件的路径。 默认为 ${folder}/aad.manifest.json

teamsapp collaborator 场景

  • 授予权限:为另一个 Microsoft 365 帐户授予协作处理 Teams 应用程序的权限。

    teamsapp collaborator grant -i false --teams-manifest-file ./appPackage/manifest.json --env dev --email other@email.com
    

    收到所需权限后,项目创建者和协作者可以通过 GitHub 与新协作者共享项目,新协作者可以拥有 Microsoft 365 帐户的所有权限。

  • 显示权限状态:项目创建者和协作者可以使用 teamsapp collaborator status 命令查看特定 env 的 Microsoft 365 帐户权限。

    teamsapp permission status --env dev
    
  • 列出所有协作者:项目创建者和协作者可以使用 teamsapp collaborator status 命令查看特定 env 的所有协作者。

    teamsapp collaborator status --env dev --list-all-collaborators
    

teamsapp update

将应用清单更新到 Teams 开发人员门户。

teamsapp update 参数

下表列出了可用于 teamsapp update的参数:

参数 必需 说明
--env-file 选择要在应用清单模板文件中替换的变量的 .env 文件。
--folder -f 选择项目的根文件夹。 默认为 ./
--teams-manifest-file 指定应用清单文件路径。 默认值为 ./appPackage/manifest.json
--package-file 指定压缩的 Teams 应用包文件路径。
--output-package-file 指定输出压缩的 Teams 应用包文件路径。 默认值为 ./appPackage/build/appPackage.${env}.zip
--output-manifest-file 指定应用清单文件路径中的最终输出。 默认值为 ./appPackage/build/manifest.${env}.json

teamsapp upgrade

升级项目以使用最新版本的 Teams 工具包。

teamsapp upgrade 参数

下表列出了可用于 teamsapp upgrade的参数:

参数 必需 说明
--force -f 强制升级项目以使用最新版本的 Teams 工具包。 默认值 false为 。

teamsapp install

将应用程序包旁加载到 Teams 中。

teamsapp install 参数

下表列出了可用于 teamsapp install的参数:

命令 说明
--file-path 指定应用清单 zip 包的路径。
--xml-path 指定 Teams XML 应用清单文件的路径。

teamsapp install 场景

将包含基于 json 的应用清单的应用程序包旁加载到 Teams、Outlook 和 Microsoft 365 应用。

teamsapp install --file-path appPackage.zip

将带有基于 XML 的清单的 Outlook 外接程序应用程序包旁加载到 Outlook。

teamsapp install --xml-path manifest.xml

teamsapp uninstall 场景

按游戏 ID 删除已获取的 Microsoft 365 应用。

teamsapp uninstall --title-id U_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

按清单 ID 删除获取的 Microsoft 365 应用。

teamsapp uninstall --manifest-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

teamsapp launchinfo

获取已获取的 Microsoft 365 应用的启动信息。

teamsapp launchinfo -h 参数

下表列出了可用于 teamsapp launchinfo -h的参数:

命令 说明
--title-id 指定获取的 Microsoft 365 应用的游戏 ID。
--manifest-id 指定获取的 Microsoft 365 应用的清单 ID。

teamsapp launchinfo 场景

按游戏 ID 获取已获取的 Microsoft 365 应用的启动信息。

teamsapp launchinfo --title-id U_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

按清单 ID 获取已获取的 Microsoft 365 应用的启动信息。

teamsapp launchinfo --manifest-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

teamsapp uninstall

删除已获取的 Microsoft 365 应用。

teamsapp uninstall 参数

下表列出了可用于 teamsapp uninstall的参数:

命令 说明
--title-id 指定已安装 Microsoft 365 应用的标题 ID。
--manifest-id 指定已安装 Microsoft 365 应用的清单 ID。

TeamsFx 库

Microsoft Teams Framework (TeamsFx) 是一个库,封装常见功能和集成模式,例如简化对 Microsoft 标识的访问。 可以使用零配置生成适用于 Teams 的应用。

下面是main TeamsFx 功能的列表:

  • TeamsFx 协作:允许开发人员和项目所有者邀请其他协作者加入 TeamsFx 项目。 可以协作调试和部署 TeamsFx 项目。

  • TeamsFx CLI:加速 Teams 应用程序开发。 它还启用 CI/CD 方案,可在脚本中集成 CLI 来实现自动化。

  • TeamsFx SDK:提供对数据库的访问权限,例如,主 TeamsFx 代码库包含为 Teams 开发人员定制的客户端和服务器端代码的简单身份验证。

入门

npm 安装 teamsfx-cli,并运行 teamsfx -h 以检查所有可用命令:

  npm install -g @microsoft/teamsfx-cli
  teamsfx -h

支持的命令

命令 说明
teamsfx new 创建新的 Teams 应用程序。
teamsfx add 将功能添加到 Teams 应用程序。
teamsfx account 管理 Microsoft 365 和 Azure 帐户。 支持的云服务是 Azure 和 Microsoft 365。
teamsfx env 管理环境。
teamsfx help 显示 Teams 工具包 CLI 帮助。
teamsfx list 列出可用的 Teams 应用程序模板和示例。
teamsfx provision 在 teamsapp.yml 或 teamsapp.local.yml 中运行预配阶段。
teamsfx deploy 在 teamsapp.yml 或 teamsapp.local.yml 中运行部署阶段。
teamsfx package 将 Teams 应用构建到包中以进行发布。
teamsfx validate 使用应用清单架构或验证规则验证 Teams 应用。
teamsfx publish 在 teamsapp.yml 中运行发布阶段。
teamsfx preview 预览当前应用程序。
teamsfx m365 管理 Microsoft 365 应用。
teamsfx permission 检查、授予和列出可以访问和管理 Teams 应用程序和Microsoft Entra应用程序的用户的权限。
teamsfx update 更新特定的应用程序应用清单文件。
teamsfx upgrade 升级项目以使用最新版本的 Microsoft Teams 工具包。

交互模式

teamsfx 默认情况下,命令在交互模式下运行。 通过将 标志设置为 --interactivefalse,可以在非交互模式下工作。

teamsfx new

默认情况下, teamsfx new 处于交互模式,并且指南用于创建新的 Teams 应用程序。 通过将 标志设置为 --interactivefalse,可以在非交互模式下工作。

命令 说明
teamsfx new template 从现有模板创建应用。
teamsfx new template list 列出所有可用的模板。

teamsfx new 的参数

参数 必需 说明
--app-name Teams 应用程序的名称。
--interactive 以交互方式选择选项。 选项为 truefalse,默认值为 true
--capabilities 选择 Teams 应用程序功能,选项为 tab、、tab-non-ssotab-spfxbotmessage-extensionnotificationcommand-bot、、sso-launch-page、 。 search-app 默认值为 tab
--programming-language 项目的编程语言。 选项为 javascripttypescript,默认值为 javascript
--folder 项目目录。 将在此目录下创建具有应用名称的子文件夹。 默认值为 ./
--spfx-framework-type 如果选择了 SPFx tab 功能,则适用。 前端框架。 选项为 nonereactminimal,默认值为 none
--spfx-web part-name 如果选择了 SPFx tab 功能,则适用。 默认值为“helloworld”。
--bot-host-type-trigger 如果选择了 Notification bot 功能,则适用。 选项包括 http-restifyhttp-functionstimer-functions。 默认值为 http-restify

teamsfx new 的方案

可以使用交互模式创建 Teams 应用。 以下列表提供了使用 控制所有参数 teamsfx new的方案:

  • HTTP 触发的通知机器人与 restify 服务器。

    teamsfx new --interactive false --capabilities "notification" --bot-host-type-trigger "http-restify" --programming-language "typescript" --folder "./" --app-name       MyAppName
    
  • Teams 命令和响应机器人。

    teamsfx new --interactive false --capabilities "command-bot" --programming-language "typescript" --folder "./" --app-name myAppName
    
  • 使用 React 在 SPFx 上托管的选项卡应用。

    teamsfx new --interactive false --app-name newspfxapp --capabilities tab-spfx --spfx-framework-type react
    

teamsfx add

下表列出了 Teams 应用程序的不同功能及其说明。

命令 说明
teamsfx add SPFxWebPart 与 Teams 紧密集成的自动托管 SPFx Web 部件。

teamsfx account

下表列出了云服务帐户,例如 Azure 和 Microsoft 365。

命令 说明
teamsfx account login 登录到所选云服务。 服务选项包括 Microsoft 365 或 Azure。
teamsfx account logout 注销所选云服务。 服务选项包括 Microsoft 365 或 Azure。
teamsfx account show 显示所有连接的云帐户信息。

teamsfx env

管理环境。

命令 说明
teamsfx env add 通过从指定的环境复制来添加新环境。
teamsfx env list 列出所有环境。

teamsfx env 的方案

通过从现有开发环境复制来创建新环境:

teamsfx env add staging --env dev

teamsfx provision

在 中 teamsapp.yml运行预配阶段。

运行 teamsfx provision --env local 会改为触发预配 teamsapp.local.yml 阶段。

teamsfx provision 的参数

参数 必需 说明
--env 为项目选择环境。
--folder 选择项目的根文件夹。 默认为 ./

teamsfx deploy

在 中 teamsapp.yml运行部署阶段。

运行 teamsfx deploy --env local 会改为触发部署 teamsapp.local.yml 阶段。

teamsfx deploy 的参数

参数 必需 说明
--env 为项目选择环境。
--folder 选择项目的根文件夹。 默认为 ./

teamsfx validate

使用应用清单架构或验证规则验证 Teams 应用。

teamsfx validate 的参数

参数 必需 说明
--env 选择项目的现有环境。
--manifest-path 选择输入的应用清单文件路径,默认为 ${folder}/appPackage/manifest.json。 此应用清单使用应用清单架构进行验证。
--app-package-file-path 选择压缩的 Teams 应用包路径,默认为 ${folder}/appPackage/build/appPackage.${env}.zip。 此包使用验证规则进行验证。
--folder 选择项目的根文件夹。 默认为 ./

teamsfx publish

在 中 teamsapp.yml运行发布阶段。

运行 teamsfx publish --env local 会改为触发发布阶段 teamsapp.local.yml

teamsfx publish 的参数

参数 必需 说明
--env 为项目选择环境。
--folder 选择项目的根文件夹。 默认为 ./

teamsfx package

将 Teams 应用构建到包中以进行发布。

teamsfx package 的参数

参数 必需 说明
--env 选择项目的现有环境。
--teams-manifest-file 指定应用清单模板文件路径,可以是项目根文件夹的绝对路径或相对路径,默认值为“./appPackage/manifest.json”默认值:“./appPackage/manifest.json”。
--output-zip-path 选择压缩的应用包的输出路径,默认为 ${folder}/appPackage/build/appPackage.${env}.zip
--output-manifest-path 选择生成的应用清单路径的输出路径,默认为 ${folder}/appPackage/build/manifest.${env}.json
--folder 选择项目的根文件夹。 默认为 ./

teamsfx preview

预览当前应用程序。

teamsfx preview 的参数

参数 必需 说明
--folder 选择项目的根文件夹。 默认为 ./
--env 为项目选择现有 env。 默认为 local
--teams-manifest-file 选择 Teams 应用 manifest file path,默认为 ${folder}/appPackage/manifest.json
--run-command 用于启动本地服务的命令。 local仅适用于环境。 如果未定义, teamsfx 请使用自动检测到的项目类型 (npm run dev:teamsfxdotnet runfunc start) 。 如果为空, teamsfx 则跳过启动本地服务。
--running-pattern 启动服务的就绪信号输出。 local仅适用于环境。 如果未定义, teamsfx 请使用默认的通用模式 (“started/successfully/finished/crashed/failed”) 。 如果为空, teamsfx 则将进程启动视为就绪信号。
--open-only local仅适用于环境。 如果为 true,则直接打开 Web 客户端,而不启动本地服务。 默认为 false
--m365-host 在 Teams、Outlook 或 Microsoft 365 应用中预览应用程序 [字符串] [选项: teamsoutlookoffice]。 默认为 teams
--browser 选择浏览器以打开 Teams Web 客户端 [string] [选项: chromeedgedefault]。 默认为 default
--browser-arg 要传递给浏览器的参数,例如 --browser-args=“--guest。
--exec-path 执行命令时添加到系统环境变量 PATH 的路径,默认为 ${folder}/devTools/func

teamsfx preview 的方案

以下列表提供了 的 teamsfx preview常见方案:

teamsfx preview 预期用户已运行 teamsfx provisionteamsfx deploy

  • 本地预览

    依赖项:

    • Node.js
    • .NET SDK
    • Azure Functions Core Tools
    teamsfx preview --env --local
    teamsfx preview --env --local --browser chrome
    
  • 远程预览

    teamsfx preview --env --remote
    teamsfx preview --env --remote --browser edge
    

    注意

    后台服务的日志(如 React)保存在 ~/.fx/cli-log/local-preview/ 中。

teamsfx m365

管理 Microsoft 365 应用。

teamsfx m365 的参数

命令 说明
sideloading [options] 使用给定应用清单包中指定的相应信息旁加载 Microsoft 365 应用。
unacquire [options] 删除已获取的 Microsoft 365 应用。
launchinfo [options] 获取已获取的 M365 应用的启动信息。

teamsfx permission

检查、授予和列出用户权限。

命令 说明
teamsfx permission grant 检查用户的权限。
teamsfx permission status 显示项目的权限状态。

teamsfx permission grant 的参数

参数 必需 说明
--env 选择项目的现有环境。
--folder 选择项目的根文件夹。 默认为 ./
--email 输入协作者的电子邮件地址。
--teams-app-manifest Teams 应用的应用清单。
--aad-app-manifest Microsoft Entra应用的应用清单。

teamsfx permission status 的参数

参数 必需 说明
--env 选择项目的现有环境。
--folder 选择项目的根文件夹。 默认为 ./
--teams-app-manifest Teams 应用的应用清单。
--aad-app-manifest Microsoft Entra应用的应用清单。
--list-all-collaborators 列出所有协作者。

teamsfx permission 的方案

  • 授予权限

    项目创建者和协作者可以使用 teamsfx 权限授予命令向项目添加新协作者:

    teamsfx permission grant --env dev --email user-email@user-tenant.com
    

    收到所需的权限后,项目创建者和协作者可以通过 GitHub 与新的协作者共享项目,新的协作者可以拥有 Microsoft 365 帐户的所有权限。

  • 显示权限状态

    项目创建者和协作者可以使用 teamsfx permission status 命令查看特定 env 的 Microsoft 365 帐户权限:

    teamsfx permission status --env dev
    
  • 列出所有协作者

    项目创建者和协作者可以使用 teamsfx permission status 命令查看特定环境的所有协作者:

    teamsfx permission status --env dev --list-all-collaborators
    

teamsfx update

更新特定的应用清单文件。

命令 说明
teamsfx update aad-app 更新当前应用程序中的 Microsoft Entra 应用。
teamsfx update teams-app 将应用清单文件更新到 Teams 开发人员门户。

teamsfx update aad-app 的参数

参数 必需 说明
--env 选择项目的现有环境。
--folder 选择项目的根文件夹。 默认为 ./
--teams-manifest-file 输入Microsoft Entra应用清单模板文件路径,它是项目根文件夹的相对路径,默认为 ./aad.manifest.json

teamsfx update teams-app 的参数

参数 必需 说明
--env 选择项目的现有环境。
--folder 选择项目的根文件夹。 默认为 ./
--teams-manifest-file 输入应用清单模板文件路径,它是项目根文件夹的相对路径,默认为 ./appPackage/manifest.json

teamsfx upgrade

升级项目以使用最新版本的 Teams 工具包。

teamsfx upgrade 的参数

参数 必需 说明
--force 强制升级项目以使用最新版本的 Teams 工具包。 默认为 false

TeamsFx 库

Microsoft Teams Framework (TeamsFx) 是一个库,封装常见功能和集成模式,例如简化对 Microsoft 标识的访问。 可以使用零配置生成适用于 Teams 的应用。

下面是main TeamsFx 功能的列表:

  • TeamsFx 协作:允许开发人员和项目所有者邀请其他协作者加入 TeamsFx 项目。 可以协作调试和部署 TeamsFx 项目。

  • TeamsFx CLI:加速 Teams 应用程序开发。 它还启用 CI/CD 方案,可在脚本中集成 CLI 来实现自动化。

  • TeamsFx SDK:提供对数据库的访问权限,例如主 TeamsFx 代码库,其中包含为 Teams 开发人员定制的客户端和服务器端代码的简单身份验证。

入门

npm 安装 teamsfx-cli,并运行 teamsfx -h 以检查所有可用命令:

  npm install -g @microsoft/teamsfx-cli
  teamsfx -h

支持的命令

命令 说明
teamsfx new 创建新的 Teams 应用程序。
teamsfx add 向 Teams 应用程序添加功能。
teamsfx account 管理云服务帐户。 支持的云服务为“Azure”和“Microsoft 365”。
teamsfx env 管理环境。
teamsfx provision 在当前应用程序中预配云资源。
teamsfx deploy 部署当前应用程序。
teamsfx package 将 Teams 应用构建到包中以进行发布。
teamsfx validate 验证当前应用程序。
teamsfx publish 将应用发布到 Teams。
teamsfx preview 预览当前应用程序。
teamsfx config 管理配置数据。
teamsfx permission 在同一项目中与其他开发人员协作。

teamsfx new

默认情况下, teamsfx new 处于交互模式,并且指南用于创建新的 Teams 应用程序。 通过将标志设置为 --interactivefalse,可以在非交互模式下工作。

命令 说明
teamsfx new template <template-name> 从现有模板创建应用
teamsfx new template list 列出所有可用模板

teamsfx new 参数

参数 必需 说明
--app-name Teams 应用程序的名称。
--interactive 以交互方式选择选项。 选项为 truefalse,默认值为 true
--capabilities 选择 Teams 应用程序功能,选项为 tab、、tab-non-ssotab-spfxbotmessage-extensionnotificationcommand-bot、、sso-launch-page、 。 search-app 默认值为 tab
--programming-language 项目的编程语言。 选项为 javascripttypescript,默认值为 javascript
--folder 项目目录。 将在此目录下创建具有应用名称的子文件夹。 默认值为 ./
--spfx-framework-type 如果选择了该功能, SPFx tab 则适用。 前端框架。 选项为 nonereactminimal,默认值为 none
--spfx-web part-name 如果选择了 SPFx tab 功能,则适用。 默认值为“helloworld”。
--bot-host-type-trigger 如果选择了 Notification bot 功能,则适用。 选项包括 http-restifyhttp-functionstimer-functions。 默认值为 http-restify

teamsfx new 场景

可以使用交互模式创建 Teams 应用。 以下列表提供了使用 控制所有参数 teamsfx new的方案:

  • HTTP 触发的通知机器人与 restify 服务器。

    teamsfx new --interactive false --capabilities "notification" --bot-host-type-trigger "http-restify" --programming-language "typescript" --folder "./" --app-name       MyAppName
    
  • Teams 命令和响应机器人。

    teamsfx new --interactive false --capabilities "command-bot" --programming-language "typescript" --folder "./" --app-name myAppName
    
  • 使用 React 在 SPFx 上托管的选项卡应用。

    teamsfx new --interactive false --app-name newspfxapp --capabilities tab-spfx --spfx-framework-type react
    

teamsfx add

下表列出了 Teams 应用程序的不同功能及其说明。

命令 说明
teamsfx add notification 通过各种触发器向 Teams 发送通知。
teamsfx add command-and-response 响应 Teams 聊天中的简单命令。
teamsfx add sso-tab Teams 中嵌入的 Teams 标识感知网页。
teamsfx add tab Teams 中嵌入的 Hello world 网页。
teamsfx add bot Hello world 聊天机器人,用户可运行简单和重复的任务。
teamsfx add message-extension 允许通过按钮和窗体进行交互的 Hello world 消息扩展。
teamsfx add azure-function 一种无服务器、事件驱动的计算解决方案,允许你编写更少的代码。
teamsfx add azure-apim 跨所有环境用于 API 的混合多云管理平台。
teamsfx add azure-sql 为云构建的始终最新的关系数据库服务。
teamsfx add azure-keyvault 用于安全存储和访问机密的云服务。
teamsfx add sso 为 Teams 选项卡和机器人功能开发单一登录 (SSO) 功能。
teamsfx add api-connection [auth-type] 使用 TeamsFx SDK 连接到具有身份验证支持的 API。
teamsfx add cicd 为 GitHub、Azure DevOps 或 Jenkins 添加 CI/CD 工作流。

teamsfx account

下表列出了云服务帐户,例如 Azure 和 Microsoft 365。

命令 说明
teamsfx account login <service> 登录到所选云服务。 服务选项包括 Microsoft 365 或 Azure。
teamsfx account logout <service> 注销所选云服务。 服务选项包括 Microsoft 365 或 Azure。
teamsfx account set --subscription 更新帐户设置以设置订阅 ID。

teamsfx env

下表列出了不同的环境。

命令 说明
teamsfx env add <new_env_name> --env <existing_env_name> 通过从指定的环境复制来添加新环境。
teamsfx env list 列出所有环境。

teamsfx env 的方案

通过从现有开发环境复制来创建新环境:

teamsfx env add staging --env dev

teamsfx provision

在当前应用程序中预配云资源。

命令 说明
teamsfx provision manifest 使用给定应用清单文件中指定的相应信息,在 Teams 开发人员门户中预配 Teams 应用。

teamsfx provision 的参数

参数 必需 说明
--env 为项目选择环境。
--subscription 指定 Azure 订阅 ID。
--resource-group 设置现有资源组的名称。
--sql-admin-name 当项目中存在 SQL 资源时适用。 SQL 的管理员名称。
--sql-password 当项目中存在 SQL 资源时适用。 SQL 的管理员密码。

teamsfx deploy

命令 teamsfx deploy 用于部署当前应用程序。 默认情况下,它部署整个项目,但也可以部分部署。 可用选项包括 frontend-hosting、、functionapimbotspfxaad-manifest、 和 manifest

teamsfx deploy 的参数

参数 必需 说明
--env 选择项目的现有环境。
--open-api-document 当项目中存在 APIM 资源时适用。 打开的 API 文档文件路径。
--api-prefix 当项目中存在 APIM 资源时适用。 API 名称前缀。 API 的默认唯一名称是 {api-prefix}-{resource-suffix}-{api-version}
--api-version 当项目中存在 APIM 资源时适用。 API 版本。
--include-app-manifest 是否将应用清单部署到 Teams 平台。 选项为 yesnot。 默认值为 no
--include-aad-manifest 是否部署Microsoft Entra清单。 选项为 yesnot。 默认值为 no

teamsfx validate

验证当前应用程序。 此命令验证应用程序的应用清单文件。

teamsfx validate 的参数

--env:选择项目的现有环境。

teamsfx publish

将应用发布到 Teams。

teamsfx publish 的参数

--env:选择项目的现有环境。

teamsfx package

将 Teams 应用构建到包中以进行发布。

teamsfx preview

从本地或远程预览当前应用程序。

teamsfx preview 的参数

参数 必需 说明
--local 从本地预览应用程序。 --local--remote 互斥。
--remote 从远程预览应用程序。 --remote--local 互斥。
--env 追加参数 --remote 时,请选择项目的现有环境。
--folder 项目根目录。 默认值为 ./
--browser 用于打开 Teams Web 客户端的浏览器。 选项有 chromeedgedefault,如系统默认浏览器,值为 default
--browser-arg 要传递到浏览器的参数需要 --browser,可以多次使用,例如 --browser-args="--guest"
--sharepoint-site SharePoint 网站 URL,例如用于 SPFx 项目远程预览的 {your-tenant-name}.sharepoint.com
--m365-host 在 Teams、Outlook 或 Microsoft 365 中预览应用程序, (正式称为 Office 应用) 。 选项包括 teamsoutlookoffice。 默认值为 teams

teamsfx preview 的方案

以下列表提供了 teamsfx 预览版的常见方案:

  • 本地预览

    依赖项:

    • Node.js
    • .NET SDK
    • Azure Functions Core Tools
    teamsfx preview --local
    teamsfx preview --local --browser chrome
    
  • 远程预览

    teamsfx preview --remote
    teamsfx preview --remote --browser edge
    

    注意

    React 等后台服务的日志保存在 ~/.fx/cli-log/local-preview/ 中。

teamsfx config

配置数据在用户范围或项目范围内。

命令 说明
teamsfx config get [option] 查看 选项的配置值。
teamsfx config set <option> <value> 更新 选项的配置值。

teamsfx config 的参数

参数 必需 说明
--env 选择项目的现有环境。
--folder 用于获取或设置项目配置的项目目录。 默认值为 ./
--global 配置范围。 如果为 true,则范围仅限于用户范围,而不是项目范围。 默认值为 false。 现在,支持的全局配置包括 telemetry、、validate-dotnet-sdkvalidate-func-core-toolsvalidate-node

teamsfx config 的方案

文件中的 .userdata 机密已加密, teamsfx config 可帮助你查看或更新所需的值。

  • 停止发送遥测数据

    teamsfx config set telemetry off
    
  • 禁用环境检查器

    有三种配置需要打开或关闭 Node.js、.NET SDK 和 Azure Functions Core Tools 验证,所有这些配置在默认情况下都处于启用状态。 如果不需要依赖项验证并想要自行安装依赖项,则可以将配置设置为“关闭”。 请查看以下指南:

    若要禁用 .NET SDK 验证,请使用以下命令:

    teamsfx config set validate-dotnet-sdk off
    

    若要启用 .NET SDK 验证,请使用以下命令:

    teamsfx config set validate-dotnet-sdk on
    
  • 查看所有用户范围配置

    teamsfx config get -g
    
  • 查看项目中的所有配置

    teamsfx config get --env dev
    

    注意

    机密会自动解密。

  • 更新项目中的机密配置

    teamsfx config set fx-resource-aad-app-for-teams.clientSecret xxx --env dev
    

teamsfx permission

TeamsFx CLI 提供 teamsFx permission 用于协作方案的命令。

命令 说明
teamsfx permission grant --env --email 为协作者的 Microsoft 365 帐户授予指定环境项目的权限。
teamsfx permission status 显示项目的权限状态

teamsfx permission grant 的参数

参数 必需 说明
--env 提供环境名称。
--email 提供协作者的 Microsoft 365 电子邮件地址。 确保协作者的帐户与创建者位于同一租户中。

teamsfx permission status 的参数

参数 必需 说明
--env 提供环境名称。
--list-all-collaborators 使用此标志,Teams 工具包 CLI 打印项目的所有协作者。

teamsfx permission 的方案

以下列表提供了项目所需的权限 TeamsFx

  • 授予权限

    项目创建者和协作者可以使用 teamsfx permission grant 命令将新的协作者添加到项目中:

    teamsfx permission grant --env dev --email user-email@user-tenant.com
    

    获得所需的权限后,项目创建者和协作者可以通过 GitHub 与新的协作者共享项目,新的协作者可以拥有 Microsoft 365 帐户的所有权限。

  • 显示权限状态

    项目创建者和协作者可以使用 teamsfx permission status 命令查看特定 env 的 Microsoft 365 帐户权限:

    teamsfx permission status --env dev
    
  • 列出所有协作者

    项目创建者和协作者可以使用 teamsfx permission status 命令查看特定环境的所有协作者:

    teamsfx permission status --env dev --list-all-collaborators
    
  • CLI 中的 E2E 协作工作流

    • 作为项目创建者

      • 若要创建新的 TeamsFx 选项卡或机器人项目,并创建 Azure 作为主机类型,请执行以下操作:

        teamsfx new --interactive false --app-name newapp --host-type azure
        
      • 若要登录到 Microsoft 365 帐户和 Azure 帐户,请执行以下操作:

        teamsfx account login azure
        teamsfx account login Microsoft 365
        
      • 预配项目:

        teamsfx provision
        
      • 查看协作者:

        teamsfx permission status --env dev --list-all-collaborators
        

        permission-1

      • 将另一个帐户添加为协作者。 确保添加的帐户位于同一租户下:

        teamsfx permission grant --env dev --email user-email@user-tenant.com
        

        permission

      • 将项目推送到 GitHub

    • 作为项目协作者:

      • 从 GitHub 克隆项目。

      • 登录到 Microsoft 365 帐户。 确保添加相同的 Microsoft 365 帐户:

        teamsfx account login Microsoft 365
        
      • 使用对所有 Azure 资源的参与者权限登录到 Azure 帐户:

        teamsfx account login azure
        
      • 检查权限状态:

        teamsfx permission status --env dev
        

        注意

        确保具有项目所有者权限。

        检查权限状态

      • 更新选项卡代码,并将项目部署到远程。

      • 启动远程和项目。

手动部署到 Azure Web 应用

  1. 创建启用 SSO 的选项卡。

  2. 预配项目:

    teamsfx provision
    
  3. 在 或 api foldertabs运行 npm installnpm run build:teamsfx:dev 以安装添加的包。

  4. 在计算机所在的操作系统中创建 Windows 应用服务。

  5. tabs、 、 或 buildfolder运行 $ az webapp up --name --html --subscription

  6. 修改 templates/azure/provision/frontendHosting.bicep

  7. 再次预配。 Teams 工具包更新Microsoft Entra ID和应用清单。

  8. appPackage.dev.zip在内部版本或 AppPackage 文件夹中查找,并添加到 Teams。

另请参阅