创建或克隆应用程序层

Last published : Oct 24, 2026
应用程序层是一个虚拟磁盘,包含一个或多个应用程序。通常,一个应用程序层包含一个应用程序。如果在一个层中包含多个应用程序,请将其限制为通常同时更新的内容。

从头开始创建应用程序层

本节将引导您完成应用程序层的创建,包括:
  • 要求和注意事项
  • 启动新的应用程序层
  • 部署打包机
  • 安装应用程序
  • 您可能会看到的层完整性消息
  • 验证层并关闭计算机
  • 如果需要,加快 Microsoft Ngen.exe 操作
  • 完成层

要求和注意事项

应用程序层包含一个或多个应用程序及相关设置。始终将 MS Office 安装在应用程序层中,而不要安装在操作系统层中。
  • 防病毒应用程序: 始终按照此处提供的说明将防病毒应用程序放入应用程序层中。对病毒定义文件更新要采取策略。此外,请注意文件标记功能,例如 Symantec 的 Virtual Image Exception Tool。考虑基于主机的扫描引擎,并记住用户登录时的延迟。务必扫描已发布的层化映像,而不是层本身。扫描仅在用户访问 Citrix Virtual Apps 和 Citrix Virtual Desktops 时进行。
  • MS Office: 使用此配方安装 Office。对于 Office 2010 及更高版本的 VDI 部署,请将 KMS 视为一项要求。对于 Office 2007 及更早版本,请将批量许可视为一项要求。使用其他许可结构不那么方便,因为它们要求在每个桌面上激活每个许可证。要保留用户设置和数据,请启用 Office 365 用户层存储 .OST 和流文件。搜索索引不存储。
  • 某些应用程序的分层配方: 几乎任何应用程序都可以分层,但如果您从我们在应用程序分层配方论坛中收集的提示开始,有些应用程序会更容易分层。在开始之前,请查阅论坛,了解有关您正在分层的特定应用程序的提示和过程。
  • 需要添加本地用户或管理员的应用程序。 在应用程序层上安装应用程序时添加或更改的本地用户或管理员不会保留。操作系统层会保留您添加的任何本地用户或组,但应用程序层不会。在安装应用程序之前将本地用户或管理员添加到操作系统层,或者考虑将应用程序安装在操作系统层上。

启动新的应用程序层

要创建可安装应用程序的打包计算机,请执行以下操作:
  1. 登录管理控制台,然后选择 层 > 应用程序层。
  2. 在 操作 栏中单击 创建层。
  3. 输入 层名称 和 版本,两者都是必填值。您还可以输入其他值。
  4. 在“操作系统层”选项卡上,选择要与此应用程序层关联的操作系统层。
  5. (可选) “必备层”选项卡允许您指定在此层上安装应用程序时必须存在的其他应用程序层。仅当所需应用程序无法包含在同一层中时才使用此选项。有关此高级功能的更多信息,请参阅以下部分中的“必备层”。 注意: 为现有应用程序层添加新版本时,必须指定所需的必备层。它们不会从一个版本延续到另一个版本。
  6. 在“连接器”选项卡中,选择一个连接器配置,其中包含您计划构建层的平台的凭据和存储位置。如果未列出您需要的配置,请单击 新建 以添加一个。
  7. 在“打包磁盘”选项卡上,键入打包磁盘的文件名,然后选择磁盘格式。此磁盘用于打包计算机,即安装应用程序的虚拟机。
  8. 在“图标分配”选项卡上,选择要分配给层的图标。此图标表示“层”模块中的层。
    • 要使用现有映像,请在映像对话框中选择一个映像。
    • 要导入新映像,请单击 浏览 并选择 PNG 或 JPG 格式的映像。
    • 如果您正在使用已选择“卸载合成”的连接器,并且选择 App Layering 附带的图标之一,则当图层最终确定时,打包机将尝试根据图层的内容分配图标。
  9. 在“确认并完成”选项卡上,查看应用程序图层的详细信息,然后单击 创建图层。您可以在创建图层之前键入可选注释。您的注释将显示在“信息”视图的“审核历史记录”中。创建打包磁盘后,“任务”栏将显示指向您的虚拟机管理程序中打包磁盘的链接,您可以在其中部署打包机。
  10. 选择 任务 页面,然后单击 打包磁盘 任务。单击信息图标以显示完整的任务说明,包括指向发布此图层打包机的位置的链接。
接下来,您可以部署图层的打包机。

部署打包机

选择您的虚拟机管理程序:
  • 思杰XenServer®、微软Hyper-V、Nutanix 或 VMware vSphere
  • 微软Azure
  • 其他虚拟机管理程序(网络文件共享)
  • 谷歌云平台 (GCP)

思杰XenServer、微软Hyper-V、Nutanix、威睿vSphere

  1. 登录到您的虚拟机管理程序客户端(XenServer、Hyper-V 管理器、Nutanix Prism 或 vSphere)。
  2. 登录到 App Layering 管理控制台,然后选择 任务 页面以查看当前任务。
  3. 选择 创建应用程序图层 任务,然后单击信息图标以查看完整的任务说明。
  4. 使用任务说明中提供的 URL 导航到虚拟机管理程序客户端中的打包机。
  5. 封装机已开机。
现在,您可以在封装机上安装此层的应用程序。

微软Azure

设备将打开 Azure 自定义部署模板,您可以在其中创建封装机。
  1. 登录到 Azure 门户 (https://portal.azure.com)。注意: 您必须在尝试下一步之前登录。
  2. 转到 App Layering 管理控制台,然后选择任务页面。选择创建应用程序层任务,然后单击信息图标以查看详细信息。
  3. 使用任务详细信息中的链接导航到 Azure 中的封装机。此时将打开“自定义部署”面板。
  4. 设置 Azure 参数。
    • 封装机名称 - 必须符合 Azure 虚拟机名称要求。
    • 大小 – 虚拟机大小。
    • 虚拟网络和子网 - 用于部署封装机。 重要提示:请确保资源组位置的值与您在连接器配置中配置的存储帐户位置匹配。如果这些位置不相同,则封装机将无法部署。如果部署失败,您可以再次将链接粘贴到浏览器中并重新开始。
  5. 封装机开机后,您可以安装要包含在该层中的应用程序。

其他虚拟机管理程序(通过设备的网络文件共享)

  1. 在网络文件共享上的以下目录中找到封装磁盘: \Unidesk\Packaging Disks
  2. 将封装磁盘复制到虚拟机管理程序上的单独位置。这为使用磁盘创建新虚拟机时虚拟机管理程序生成的文件留出了空间。
    **重要提示:**在磁盘准备好完成之前,不要将其复制到“完成”文件夹。位于“完成”文件夹中的磁盘无法附加到您接下来要创建的新虚拟机。
  3. 使用打包磁盘作为启动磁盘创建虚拟机。
  4. 启动打包机。
打包机启动后,您可以安装要包含在层中的应用程序。

安装应用程序

在打包机上安装应用程序时,请保持应用程序的状态,使其与用户登录时希望看到的一致。应用程序的状态是用户每次访问应用程序时所体验到的。
  1. 使用用于创建操作系统的用户帐户远程登录到打包机。
  2. 安装应用程序,以及应用程序所需的任何驱动程序、启动级应用程序或文件。
  3. 如果需要系统重启,请手动重启。打包机不会自动重启。如果您安装的应用程序影响启动级组件,请在完成层时重启打包机。
  4. 确保打包机处于您希望用户使用的状态:
    • 如果应用程序需要任何安装后设置或注册,请立即完成这些步骤。
    • 删除您不希望包含在打包机上的任何设置、配置、文件、映射驱动器或应用程序。

验证层并关闭机器

应用程序安装到打包机后,请验证层是否已准备好完成。当所有安装后处理完成后,层即可完成。
为验证所有未完成的进程均已完成,您可以在打包机的桌面上运行**“关机以完成”**工具。
要使用“关机以完成”工具,请执行以下操作:
  1. 如果您未登录到打包计算机,请以创建该计算机的用户身份远程登录。
  2. 双击 Shutdown For Finalize(关机以完成)图标。命令行窗口将显示详细说明层验证过程的消息。
  3. 如果在层可以完成之前有待完成的操作,系统会提示您完成该过程。如果必须完成 Microsoft Ngen.exe 操作,您可能能够加快 Ngen.exe 操作,具体细节将在本文后面介绍。
  4. 所有待处理操作完成后,再次双击 Shutdown For Finalize(关机以完成)图标。这将关闭打包计算机,并且层已准备好完成。

在完成过程中可能看到的层完整性消息

以下层完整性消息会告诉您在层准备好完成之前必须完成哪些排队操作:
  • RunOnce 脚本待处理 - 检查并重新启动打包计算机。
  • 安装后重新启动待处理 - 检查并重新启动打包计算机。
  • Microsoft Ngen.exe 操作正在后台进行。
  • MSI 安装操作正在进行 - 检查打包计算机。
  • 重新启动待处理以更新启动磁盘上的驱动程序 - 检查并重新启动打包计算机。
  • 需要 Microsoft Ngen.exe 操作。
  • 软件中心客户端已配置为运行,但 SMSCFG.INI 仍然存在。要了解有关在层中部署 SCCM 的更多信息,请参阅文章 App Layering Recipe: How to deploy Microsoft SCCM in a layer。
有关层完整性消息的含义以及如何调试它们的详细信息,请参阅 Debugging Layer Integrity Problems in Citrix App Layering。
您无法通过关闭计算机来绕过层完整性消息,因为 App Layering 软件会停止并让您返回到打包计算机,直到所有进程完成。
如果 Microsoft Ngen.exe 操作正在进行中,您可能能够加快其速度,如下一节所述。

如有必要,加快 Microsoft Ngen.exe 操作

安装所有软件更新后,您必须允许 Ngen.exe 将 .NET 字节码重新编译为本机映像,并构建注册表项来管理它们。
Ngen.exe 是 Microsoft 本机映像生成器,它是 .NET 系统的一部分。Windows 根据正在安装的软件以及 Windows 在配置中检测到的内容来确定何时运行 Ngen.exe。
重要提示:
当 Ngen.exe 运行时,您必须让它完成。中断的 Ngen.exe 操作可能会导致 .NET 程序集无法正常工作,或者在 .NET 系统中出现其他问题。
通常,Ngen.exe 是一种后台操作,当前台活动出现时会暂停。如果您想加快 Ngen.exe 操作,可以将其任务置于前台,以尽快完成。
要将任务置于前台:
  1. 以管理员身份打开命令提示符。
  2. 转到当前正在使用的版本的 Microsoft.NET\Framework 目录:
    cd C:\Windows\Microsoft.NET\FrameworkNN\vX.X.XXXXX
  3. 输入以下 Ngen.exe 命令以运行所有排队的项目。此命令在构建程序集之前处理排队的组件安装。
    ngen eqi 3
    Ngen.exe 任务会移动到命令提示符的前台,并列出正在编译的程序集。如果看到编译消息,这是正常的。
    您可以使用任务管理器查看 MSCORSVW.EXE 实例是否正在运行。如果正在运行,请等待其完成,或运行 ngen eqi 3。
    注意:
    请勿通过重新启动来停止任务。请等待任务完成!
  4. 确保所有 Ngen.exe 进程都已运行完成。
  5. 完成后,使用桌面上的“关机以完成”快捷方式关闭虚拟机。

完成层

软件安装完毕且封装计算机已验证并关闭后,即可完成该层。
Hyper-V:
如果在连接器配置中选择了“卸载合成”,则完成操作将作为合成过程的一部分自动进行。

XenServer、Azure、Hyper-V、Nutanix AHV、VMware vSphere

现在,该层已验证并关闭,可以完成。
Hyper-V 平台:
如果您使用的连接器已选择“卸载合成”,则此完成过程是自动化的,您无需执行这些手动步骤。
  1. 返回管理控制台。
  2. 选择“层 > 应用程序层”,然后选择您准备的层。
  3. 在“版本信息”选项卡上选择您的层版本,然后在操作栏中单击“完成”。
  4. 单击“完成”以完成层的创建。
  5. 监视任务栏以验证操作是否成功完成。
层验证完成后,封装机将被移除,以最大程度地减少存储空间占用。

其他管理程序(网络文件共享)

层已验证并关闭,即可完成。
  1. 将封装磁盘从包含封装机文件的文件夹复制到网络文件共享上的 Finalize 文件夹: \Unidesk\Finalize
  2. 返回管理控制台。
  3. 选择“层 > 应用程序层”。
  4. 在“版本信息”选项卡上选择您的层版本,然后在操作栏中单击“完成”。
  5. 监视任务栏以验证操作是否成功完成并且层可部署。

克隆应用程序层

您可以通过克隆层的特定版本来创建与现有层相同的应用程序层。在克隆过程中,系统会提示您输入特定于该层的信息。您可以通过向应用程序层添加版本来更新它。由于只克隆了一个层版本,因此新层最初只有一个版本,即使它所克隆的层有多个版本。
要克隆层:
  1. 选择要复制的应用程序层,然后在操作栏中单击“克隆层”。
  2. 选择要克隆的源层版本。您可以从下拉菜单中选择所需的版本。
  3. 输入层的名称和描述(如果额外信息有帮助)。描述是可选的。
  4. 输入版本和版本的描述(如果额外信息有帮助)。
  5. 在“图标分配”选项卡上,选择新层的图标。
  6. 在“确认并克隆”选项卡上,验证设置并单击“克隆层”按钮。
将创建一个新层,其层属性与源层相同,但图标除外。该层优先级高于源层,因为每个新的应用程序层都比上一个创建的应用程序层具有更高的优先级。新层的大小可能小于原始层,但这仅表示在克隆过程中删除了空白空间。该层的功能与源层相同。
您可以像使用任何其他层一样使用新层,并且它与原始层没有任何关联。

高级应用程序层选项

在创建和更新应用程序层时,请记住以下高级功能。
  • 自定义层脚本
  • 层缓存
  • 必备层

自定义层脚本

您可以在应用程序层中包含一个脚本,该脚本在系统启动时运行一次。要配置脚本,请编辑应用程序层的属性。
注意:
您可以在修订版本创建过程中或在修订版本最终确定后编辑图层修订版本的属性。
包含应用程序层的任何分层映像首次启动时,脚本都会运行。如果应用程序层是弹性分层的,则在挂载应用程序层磁盘时会运行自定义层脚本。自定义层脚本通常用于首次启动时需要许可证激活的应用程序,例如 MS Office。
自定义层脚本

层缓存以加快应用程序层创建速度

您可以使用层缓存来加快层创建时间。

缓存的工作原理

首次创建应用程序层时,如果缓存大小设置为足够大的值,则包含启动磁盘和空打包磁盘的模板将保存在缓存中。启动磁盘包括在应用程序层设置中指定的操作系统层、平台层和必备层(如果有)。
每当您创建使用相同操作系统层、必备层和平台层组合的应用程序层时,App Layering 软件都会重用该模板,从而显著缩短创建时间。
如果您随后创建使用不同操作系统层、必备层和平台层组合的应用程序层,App Layering 软件将创建一个模板并将其添加到缓存中。

推荐的缓存大小

推荐的缓存大小取决于您的应用程序层需要多少操作系统、平台和必备层组合。组合的数量决定了缓存中保存的模板数量。
要估算每个模板所需的空间:
  1. 选择每个操作系统、平台和必备层的 i 图标,然后查找 最大层大小。
  2. 添加最大磁盘大小。总和就是该模板所需的缓存大小。
要估算缓存所需的空间,请将您为每个模板确定的尺寸相加。

必备层

必备层极少推荐使用,它允许您在创建层或向其添加版本时,在打包磁盘上包含一个或多个现有应用程序层。
仅当需要时才使用必备层,因为它们可能会向层中添加部署当前应用程序不需要的内容。此行为将来可能会导致冲突。

何时使用必备层

必备层可能出于以下几个原因而需要:
  • 当在当前层上安装应用程序需要存在另一个应用程序时。例如,当您安装需要 Java 的应用程序,并且 Java 位于单独的层中时。
  • 当软件安装向现有应用程序添加设置时。例如,当您安装 Office 加载项时,必须首先安装 Microsoft Office。
  • 当两个应用程序更改相同的注册表项,并且第二个应用程序必须添加到该项而不是替换它时。例如,两个都更改 Windows 中登录项的应用程序,例如 Citrix Agent 和 Imprivata。
注意
其中一些问题也可以通过将两个应用程序放在同一层而不是使用必备层来解决。

必备层特性

必备层具有以下特性:
  • 必备层不包含在用于创建的应用程序层中。
  • 您创建的应用程序层及其每个必备层必须使用相同的操作系统层。
  • 向应用程序层添加版本时,默认情况下不包含必备层。每次向层添加版本时,都必须选择一个或多个必备层。