查看画布应用程序的源代码文件

使用画布应用程序的源代码查看 Power Apps Studio 中制作者所做的更改。 生成的画布应用 YAML 代码是只读的,无法修改。 对文件所做的任何更改都将被忽略,并且可能会丢失。

  • YAML 架构正在积极开发中,内容可能不完整。
  • *.pa.yaml 文件的当前静态模式可在此处获取。

Power Fx 和 YAML 是用于 Power Apps 源代码的语言。 YAML 因其可由人类读取的格式而备受推崇,并受益于各种编辑器、工具和操作库。

访问源代码文件

如果使用 Dataverse Git 集成,您就可以访问源代码文件,从而无需 .msapp 文件。

Power Apps Studio 为画布应用创建源代码,创建的源代码存储为 .msapp 文件内的 *.pa.yaml 文件。 .msapp 文件是一个二进制文件,包含一个包括源代码在内的文件集合。

小费

若要有效地使用应用程序生命周期管理(ALM),建议使用解决方案。 画布应用包不支持 ALM,只应在 Dataverse 不可用时用于基本导入和导出功能。

您还可以从 .msapp 文件或使用 Power Platform CLI 获取源代码文件。

*.pa.yaml 文件位于提取的 .msapp\Src 文件夹中。

重要提示

只有位于所提取 .msapp\Src 目录中的文件将用于源代码管理。 .msapp 中的 JSON 文件不应用作源代码,因为这些文件在保存和加载周期之间不稳定。

使用 Power Platform CLI 下载和提取 pa.yaml 文件

使用 Power Platform CLI 连接到环境,然后使用以下命令:

  1. 要列出当前环境的画布应用,使用命令 pac canvas list
  2. 要提取源代码文件,使用命令 pac canvas download参数 -d

从 .msapp 文件中提取源代码文件

要从 .msapp 文件提取源代码文件,您有以下两个选项:

  1. 手动解压缩 .msapp 文件。
  2. 或者,您可以使用以下命令:
 Expand-Archive -Path "C:\path\to\yourFile.msapp" -DestinationPath "C:\path\to\destination"

.msapp 文件的文件结构

对于没有 \src 文件夹的较早的 .msapp 文件,请按照以下步骤生成源代码文件:

  1. 在 Power Apps Studio 中导入、重新保存和下载新的 .msapp
  2. 然后,您可以继续解压缩源代码文件

\src 文件夹中,找到以下文件和文件夹:

  • App.pa.yaml:代表应用程序。
  • [屏幕名称].pa.yaml:每个屏幕一个文件,代表屏幕。
  • \Component:一个文件夹,其中包含组件的文件,每个组件一个文件,表示为 [组件名称].pa.yaml。

只有 \src 文件夹中的 *.pa.yaml 文件可以用作源代码。 任何其他文件都不应用作源代码。

Power Apps YAML 架构版本

目前,Power Apps 源代码有三种模式版本:

格式名称 文件扩展名 Description
试验 *.fx.yaml 实验性 Power Apps Git 版本控制pac 画布解包使用的版本不再开发。
抢先预览 - 代码查看、复制代码和粘贴代码使用的版本。 此架构中没有版本信息,因此不适合版本控制。 当代码视图正式发布 (GA) 时,它会切换为源代码预览格式。
源代码 *.pa.yaml 文件 包括源代码管理的增强功能和版本详细信息,并且正在积极开发中。

试验格式 (*.fx.yaml)

本模式描述了 Power Platform CLI 用于处理画布应用程序并将其转换为源代码格式的实验性格式。 这种格式不再积极开发。

您无法将 *.fx.yaml 文件直接转换为新格式。 要转换旧版应用程序,可将画布应用程序打包为 .msapp 文件并导入 Power Apps Studio。

预览​​

该版本由代码视图预览期间使用。 它的设计目的是在 Power Apps Studio 中创建画布应用程序,让您可以轻松复制和粘贴控件。 在此版本中,源代码是在 Power Apps Studio 中使用,而不是像实验格式那样进行转换。

预览期间的格式是临时的,不再使用。 您可以粘贴预览格式中的代码。

以下是对实验格式所做的更改:

  1. ZIndex 属性移除:删除 ZIndex 属性。 相反,屏幕表示为控件数组。 控件的顺序决定了它们的堆叠顺序。 常规控件按升序排序,响应式控件按降序排序。
  2. JSON 对象表示替换:不再使用“As”语法定义控件类型。 控件名称标识符的左侧仍是唯一值。 仅序列化与默认值不同的属性。 两个新属性定义控件类型和默认值:
  • 控件:在 YAML 中代表控件类型。
  • 变体:标识控件类型的变体,可更改默认属性值、添加或删除属性,或修改控件的行为或布局。

这些属性用于实例化控件,不接受 Power Fx 表达式。

源代码(*.pa.yaml)

重要提示

  • 画布应用程序的 YAML 源代码正在积极开发中。 内容可能不完整,可能会发生变化。
  • .pa.yaml 文件是只读文件,只应用于查看在 Power Apps Studio 中所做的更改。 加载应用时不会使用这些文件。
  • 不支持外部编辑、合并和冲突解决。

此架构专门用于源代码管理,允许使用单个 YAML 文件。

对以前格式的更新包括:

  1. 顶级节点元素的分组:
    • 顶级关键字“App”和“Screens”是元素现在如何在顶级节点中分组的示例。
  2. 控件版本规格:
    • 现在您可以使用控件关键字后跟 @ 运算符指定控件的版本。 如果未指定版本,则使用控件的最新版本。 该版本用于反序列化源代码的属性。 控件的运行时版本由创作版本定义。
  3. 简化的变体名称:
    • 并非所有控件都需要变体。
  4. 所有控件的一致 ZIndex:
    • 现在,所有控件都使用升序来确定从 1 开始的 ZIndex 值。 此行为符合 CSS 2 规范