Teams 工具包命令行界面
重要
- 建议使用 Teams 工具包 CLI v3 生成 Teams 应用。
- 不支持 TeamsFx CLI v1,TeamsFx CLI v2 将在 2025 年 3 月前弃用。
Microsoft Teams 工具包命令行界面 (Teams 工具包 CLI) 是一个基于文本的命令行界面,可加速 Teams 应用程序开发Microsoft。 它旨在在构建 Teams 应用程序时提供以键盘为中心的体验。 有关详细信息,请参阅 源代码 和 npm 包。
Teams 工具包 CLI 封装常见功能和集成模式,例如简化对Microsoft标识的访问。 可以使用零配置生成适用于 Teams 的应用。 Teams Toolkit 命令行接口 (CLI) 提供以下功能,以方便 Teams 应用程序的开发:
- 协作:邀请其他开发人员协作处理 Teams 工具包 CLI 项目进行调试和部署。
- 应用程序创建:使用可用的模板和示例生成新的 Teams 应用程序。
- 应用程序预览:在 Teams、Outlook 和 Microsoft 365 应用中上传和预览自定义应用。
- 资源预配和部署:预配必要的云资源并将应用程序部署到 Azure。
- 验证、打包和发布:使用 CLI 命令验证、打包和发布 Teams 应用程序。
- 环境管理:管理多个环境、Microsoft Entra 应用和 Teams 应用注册。
入门
从 npm
安装 teamsapp-cli
,并运行 teamsapp -h
以检查所有可用命令:
npm install -g @microsoft/teamsapp-cli
teamsapp -h
支持的命令
下表列出了帮助开发人员生成和管理 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.yml 中teamsapp.yml 运行预配阶段。 |
teamsapp deploy |
在 或 teamsapp.local.yml 中teamsapp.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 应用程序功能”。 可用选项包括 bot 、 ai-bot 和 ai-assistant-bot 。 使用 teamsapp list templates 查看所有可用选项。 |
--programming-language -l |
否 | 项目的编程语言。 可用选项包括 javascript 、 typescript 和 csharp 。 默认值为 javascript 。 |
--folder -f |
否 | 项目目录。 将在此目录下创建具有应用名称的子文件夹。 默认值为 ./ 。 |
--spfx-framework-type -k |
否 | 如果选择了 framework 功能,则适用。 可用选项包括 minimal 、 react 和 none 。 默认值为 react 。 |
--spfx-web part-name -w |
否 | SharePoint 框架 Web 部件的名称。 默认值为 helloworld 。 |
--spfx-folder |
否 | 包含现有 SharePoint 框架解决方案的目录或路径。 |
--me-architecture -m |
否 | 基于搜索的消息扩展的体系结构。 可用选项包括 new-api 、 api-spec 和 bot 。 默认值为 new-api 。 |
--openapi-spec-location -a |
否 | OpenAPI 说明文档位置。 |
--api-operation -o |
否 | 选择“操作” (Teams 可以与之交互的) 。 |
--bot-host-type-trigger -t |
否 | 如果选择了 Chat Notification Message 功能,则适用。 可用选项包括 http-restify 、 http-webapi 和 http-and-timer-functions 。 默认值为 http-restify 。 |
--spfx-solution -s |
否 | 创建或导入现有 SharePoint 框架解决方案。 可用选项为 new 和 import 。 默认值为 new 。 |
--spfx-install-latest-package |
否 | 安装最新版本的 SharePoint 框架。 默认值为 true 。 |
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 auth
下表列出了 Teams 应用程序的云服务帐户:
命令 | 说明 |
---|---|
teamsapp auth list |
显示所有已连接的 Microsoft 365 和 Azure 帐户。 |
teamsapp auth login |
登录到所选云服务。 可用选项为 Microsoft 365 或 Azure。 |
teamsapp auth logout |
注销所选云服务。 可用选项为 Microsoft 365 或 Azure。 |
teamsapp entra-app
管理当前应用程序中Microsoft Entra 应用。
命令 | 说明 |
---|---|
update |
更新当前应用程序中的 Teams Entra 应用。 |
teamsapp env
管理 Teams 应用程序环境。
命令 | 说明 |
---|---|
teamsapp env add |
通过复制当前环境添加新环境。 |
teamsapp env list |
列出所有可用环境。 |
teamsapp env
场景
通过从现有开发环境复制来创建新环境:
teamsapp env add staging --env dev
teamsapp help
命令 teamsapp help
显示所有可用于 Teams 工具包 CLI 的命令。
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 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 list
显示可用的 Teams 应用模板和示例。
teamsapp list
参数
下表列出了可用于 teamsapp list
的参数:
命令 | 说明 |
---|---|
--samples |
显示可用 Teams 应用示例的列表。 |
--templates |
显示可用 Teams 应用模板的列表。 |
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 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 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:teamsapp 、 dotnet run 或 func start ) 自动检测的服务。 如果为空, teamsapp 则跳过启动本地服务。 |
--running-pattern -p |
否 | 启动服务的就绪信号输出。
local 仅适用于环境。 如果未定义, teamsapp 请使用默认的通用模式 (启动、成功、完成、崩溃、失败) 。 如果为空, teamsapp 则将进程启动视为就绪信号。 |
--open-only -o |
否 |
local 仅适用于环境。 如果为 true,则直接打开 Web 客户端,而不启动本地服务。 默认为 false 。 |
--m365-host -m |
否 | 在 Teams、Outlook 或 Microsoft 365 应用中预览应用程序。 可用选项包括 teams 、 outlook 和 office 。 默认值为 teams 。 |
--browser -b |
否 | 选择浏览器以打开 Teams Web 客户端。 可用选项包括 chrome 、 edge 和 default 。 默认为 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 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 collaborator
检查、授予和列出用户访问和管理 Teams 应用程序的权限,并Microsoft Entra 应用程序。
命令 | 说明 |
---|---|
teamsapp collaborator status |
显示项目的当前权限状态。 |
teamsapp collaborator grant |
授予用户访问项目的权限。 |
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 uninstall
删除获取的 Microsoft 365 应用。
teamsapp uninstall
参数
下表列出了可用于 teamsapp uninstall
的参数:
命令 | 说明 |
---|---|
--title-id |
指定已安装 Microsoft 365 应用的游戏 ID。 |
--manifest-id |
指定已安装Microsoft 365 应用的清单 ID。 |
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
TeamsFx 库
Microsoft Teams Framework (TeamsFx) 是一个库,封装常见功能和集成模式,例如简化对Microsoft标识的访问。 可以使用零配置生成适用于 Teams 的应用。
下面是 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
默认情况下,命令在交互模式下运行。 通过将 标志设置为 --interactive
false
,可以在非交互模式下工作。
teamsfx new
默认情况下, teamsfx new
处于交互模式,并且指南用于创建新的 Teams 应用程序。 通过将 标志设置为 --interactive
false
,可以在非交互模式下工作。
命令 | 说明 |
---|---|
teamsfx new template |
从现有模板创建应用。 |
teamsfx new template list |
列出所有可用的模板。 |
teamsfx new
的参数
参数 | 必需 | 说明 |
---|---|---|
--app-name |
是 | Teams 应用程序的名称。 |
--interactive |
否 | 以交互方式选择选项。 选项为 true 和 false ,默认值为 true 。 |
--capabilities |
否 | 选择 Teams 应用程序功能,选项为 tab 、、tab-non-sso 、tab-spfx bot 、message-extension notification 、command-bot 、、sso-launch-page 、 。 search-app 默认值为 tab 。 |
--programming-language |
否 | 项目的编程语言。 选项为 javascript 或 typescript ,默认值为 javascript 。 |
--folder |
否 | 项目目录。 将在此目录下创建具有应用名称的子文件夹。 默认值为 ./ 。 |
--spfx-framework-type |
否 | 如果选择了 SPFx tab 功能,则适用。 前端框架。 选项为 none 、 react 和 minimal ,默认值为 none 。 |
--spfx-web part-name |
否 | 如果选择了 SPFx tab 功能,则适用。 默认值为“helloworld”。 |
--bot-host-type-trigger |
否 | 如果选择了 Notification bot 功能,则适用。 选项包括 http-restify 、 http-functions 和 timer-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:teamsfx 或 dotnet run func start ) 。 如果为空, teamsfx 则跳过启动本地服务。 |
--running-pattern |
否 | 启动服务的就绪信号输出。
local 仅适用于环境。 如果未定义, teamsfx 请使用默认的通用模式 (“started/successfully/finished/crashed/failed”) 。 如果为空, teamsfx 则将进程启动视为就绪信号。 |
--open-only |
否 |
local 仅适用于环境。 如果为 true,则直接打开 Web 客户端,而不启动本地服务。 默认为 false 。 |
--m365-host |
否 | 在 Teams、Outlook 或 Microsoft 365 应用中预览应用程序 [字符串] [选项: teams 、 outlook ] office 。 默认为 teams 。 |
--browser |
否 | 选择浏览器以打开 Teams Web 客户端 [string] [选项: chrome 、 edge 、 default ]。 默认为 default 。 |
--browser-arg |
否 | 要传递给浏览器的参数,例如 --browser-args=“--guest。 |
--exec-path |
否 | 执行命令时添加到系统环境变量 PATH 的路径,默认为 ${folder}/devTools/func 。 |
teamsfx preview
的方案
以下列表提供了 的 teamsfx preview
常见方案:
teamsfx preview
预期用户已运行 teamsfx provision
和 teamsfx 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] |
获取已获取Microsoft 365 应用的启动信息。 |
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 的应用。
下面是 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 应用程序。 通过将标志设置为 --interactive
false
,可以在非交互模式下工作。
命令 | 说明 |
---|---|
teamsfx new template <template-name> |
从现有模板创建应用 |
teamsfx new template list |
列出所有可用模板 |
teamsfx new
参数
参数 | 必需 | 说明 |
---|---|---|
--app-name |
是 | Teams 应用程序的名称。 |
--interactive |
否 | 以交互方式选择选项。 选项为 true 和 false ,默认值为 true 。 |
--capabilities |
否 | 选择 Teams 应用程序功能,选项为 tab 、、tab-non-sso 、tab-spfx bot 、message-extension notification 、command-bot 、、sso-launch-page 、 。 search-app 默认值为 tab 。 |
--programming-language |
否 | 项目的编程语言。 选项为 javascript 或 typescript ,默认值为 javascript 。 |
--folder |
否 | 项目目录。 将在此目录下创建具有应用名称的子文件夹。 默认值为 ./ 。 |
--spfx-framework-type |
否 | 如果选择了该功能, SPFx tab 则适用。 前端框架。 选项为 none 、 react 和 minimal ,默认值为 none 。 |
--spfx-web part-name |
否 | 如果选择了 SPFx tab 功能,则适用。 默认值为“helloworld”。 |
--bot-host-type-trigger |
否 | 如果选择了 Notification bot 功能,则适用。 选项包括 http-restify 、 http-functions 和 timer-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
、、function
、apim
bot
、spfx
aad-manifest
、 和 manifest
。
teamsfx deploy
的参数
参数 | 必需 | 说明 |
---|---|---|
--env |
是 | 选择项目的现有环境。 |
--open-api-document |
否 | 当项目中存在 APIM 资源时适用。 OpenAPI 文档文件路径。 |
--api-prefix |
否 | 当项目中存在 APIM 资源时适用。 API 名称前缀。 API 的默认唯一名称是 {api-prefix}-{resource-suffix}-{api-version} 。 |
--api-version |
否 | 当项目中存在 APIM 资源时适用。 API 版本。 |
--include-app-manifest |
否 | 是否将应用清单部署到 Teams 平台。 选项为 yes 和 not 。 默认值为 no 。 |
--include-aad-manifest |
否 | 是否部署Microsoft Entra 清单。 选项为 yes 和 not 。 默认值为 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 客户端的浏览器。 选项有 chrome 、edge 和 default ,如系统默认浏览器,值为 default 。 |
--browser-arg |
否 | 要传递到浏览器的参数需要 --browser,可以多次使用,例如 --browser-args="--guest" |
--sharepoint-site |
否 | SharePoint 网站 URL,例如用于 SPFx 项目远程预览的 {your-tenant-name}.sharepoint.com 。 |
--m365-host |
否 | 在 Teams、Outlook 或 Microsoft 365 (正式称为 Office 应用) 中预览应用程序。 选项包括 teams 、 outlook 和 office 。 默认值为 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-sdk 、validate-func-core-tools validate-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
将另一个帐户添加为协作者。 确保添加的帐户位于同一租户下:
teamsfx permission grant --env dev --email user-email@user-tenant.com
将项目推送到 GitHub
作为项目协作者:
手动部署到 Azure Web 应用
创建启用 SSO 的选项卡。
预配项目:
teamsfx provision
在 或
api folder
中tabs
运行npm install
和npm run build:teamsfx:dev
以安装添加的包。在计算机所在的操作系统中创建 Windows 应用服务。
在
tabs
、 、 或build
中folder
运行$ az webapp up --name --html --subscription
。修改
templates/azure/provision/frontendHosting.bicep
。再次预配。 Teams 工具包更新Microsoft Entra ID 和应用清单。
appPackage.dev.zip
在内部版本或 AppPackage 文件夹中查找,并添加到 Teams。