Citrix DaaS™

应用程序包

应用程序包是 Citrix® 管理的预配置应用程序部署。它们允许应用程序虚拟化,这意味着应用程序独立于用户设备的操作系统和界面运行。

应用程序包简化了应用程序管理,减少了 IT 开销,并确保应用程序在其整个生命周期中安全且功能正常。

Citrix 支持以下打包技术,用于向用户交付应用程序:

本文将引导您了解如何在 Citrix DaaS™ 环境中部署和交付这些打包应用程序。

App-V 应用程序

应用程序虚拟化 (App-V) 是一种 Microsoft 技术,允许流式传输和访问应用程序,而无需在最终用户设备上进行安装。Citrix DaaS 可以使用 App-V 交付应用程序,从而提供一种集中且高效的方式来管理各种客户端计算机上的应用程序。

有关交付 App-V 打包应用程序时所涉及的组件和概念的更多信息,请参阅 Microsoft 文档:适用于 Windows 客户端的应用程序虚拟化 (App-V) 概述

重要术语

  • 管理服务器:提供集中式控制台来管理 App-V 基础结构,并将虚拟应用程序交付给 App-V 桌面客户端和远程桌面服务客户端。App-V 管理服务器负责身份验证、请求,并提供管理员所需的安全、计量、监视和数据收集功能。该服务器使用 Active Directory 和支持工具来管理用户和应用程序。
  • 发布服务器:为 App-V 客户端提供特定用户的应用程序,并托管虚拟应用程序包以进行流式传输。它从管理服务器获取软件包。
  • 动态配置文件:App-V 包可以使用动态配置文件进行自定义,当应用于包时,这些文件可用于更改其特性。例如,您可以使用它们来定义额外的应用程序快捷方式和行为。有关详细信息,请参阅动态配置文件

动态配置文件

Citrix App-V 支持两种类型的动态配置文件。文件设置在应用程序启动时应用:

  • 部署配置文件为所有用户提供计算机范围的配置。这些文件应命名为 <packageFileName>_DeploymentConfig.xml,并与它们所应用的 App-V 包位于同一文件夹中。这些文件受单管理员和双管理员管理支持。
  • 用户配置文件提供用户特定的配置,支持对包进行每用户自定义。单管理员支持以下格式命名的用户配置文件:<packageFileName>_[UserSID | Username | GroupSID |GroupName_]UserConfig.xml,并与它们所应用的 App-V 包位于同一文件夹中。

    当特定包存在多个用户配置文件时,它们按以下优先级应用:

    1. 用户 SID
    2. 用户名
    3. AD 组 SID(首先找到的获胜)
    4. AD 组名称(首先找到的获胜)
    5. 默认

    例如:

     MyAppVPackage_S-1-5-21-000000001-0000000001-000000001-001_UserConfig.xml
     MyAppVPackage_joeblogs_UserConfig.xml
     MyAppVPackage_S-1-5-32-547_UserConfig.xml
     MyAppVPackage_Power Users_UserConfig.xml
     MyAppVPackage_UserConfig.xml
     <!--NeedCopy-->
    

    注意:

    文件名中用户特定的部分也可以选择性地出现在末尾(例如 MyAppVPackage_UserConfig_joeblogs.xml)。

重要:

当有用户会话打开包中的应用程序时,无法应用动态部署配置的更改。如果其他用户(但不是当前用户)打开了包中的应用程序,则可以应用动态用户配置文件的更改。

动态配置文件位置

在单管理员管理中,Citrix App-V 组件仅处理动态配置文件,这些文件位于其 App-V 包的同一文件夹中。

当包中的应用程序启动时,对相应动态配置文件的任何更改都会重新应用。如果您的动态配置文件位于与其包不同的位置,请使用映射文件将包映射到其部署配置文件。

要创建映射文件:

  1. 打开一个新文本文件。
  2. 对于每个动态配置文件,添加一行,使用 <PackageGuid> : path 格式指定包的路径。

    例如:

    F1f4fd78ef044176aad9082073a0c780 : c:\widows\file\packagedeploy.xml
    <!--NeedCopy-->
    
  3. 将文件保存为 ctxAppVDynamicConfigurations.cfg,并将其放置在与包相同的文件夹中。

每次启动包中的应用程序时,都会递归向上搜索与 App-V 包位于同一 UNC 共享上的整个目录层次结构以查找此文件。

方法

您可以使用以下方法交付和管理 App-V 包:

  • 双管理员:在此方法中,Citrix DaaS 和 App-V 服务器协同工作以交付和管理包。此方法要求 Citrix DaaS 定期刷新 App-V 服务器状态的快照视图。它会产生硬件、基础结构和管理开销。Citrix DaaS 和 App-V 服务器必须保持同步,特别是对于用户权限。

    此方法最适用于紧密耦合的 App-V 和 Citrix 部署。在此方法中:

    • App-V 管理服务器处理动态配置文件
    • 安装在 VDA 计算机上的 App Packages Delivery Component:管理应用程序启动所需的相应发布服务器的注册。

    这可确保发布服务器在适当的时间与用户同步。发布服务器使用其配置的设置维护应用程序包生命周期的其他方面(如登录时刷新和连接组)。

  • 单管理员:应用程序包存储在网络共享上。Citrix DaaS 独立交付和管理包。

    此方法减少了开销,因为部署中不需要 App-V 服务器和数据库基础结构。

    在此方法中,您将 App-V 包存储在网络共享上,并将其元数据从该位置上传到您的环境。安装在 VDA 计算机上的 App Packages Delivery Component 然后按如下方式管理和交付应用程序:

    • 在应用程序启动时处理部署配置文件和用户配置文件。
    • 管理主机上包生命周期的所有方面。

注意:

  • 您可以同时使用一种或两种管理方法。换句话说,当您将应用程序添加到交付组时,应用程序可以来自 App-V 服务器上或网络共享上的 App-V 包。
  • 如果您同时使用两种管理方法,并且 App-V 包在两个位置都有动态配置文件,则使用 App-V 服务器中的文件(双重管理)。
  • 当您在 Web Studio 导航窗格中选择应用程序包时,显示屏会显示包名称和来源。包类型列指示用于交付包的技术以及它们在应用程序库中的引用位置。当您选择一个包时,详细信息窗格会列出包中的应用程序和快捷方式。

MSIX 和 MSIX app attach 应用程序

MSIX 是一种 Windows 应用程序包格式,可为所有 Windows 应用程序提供现代打包体验。MSIX 适用于各种 Windows 应用程序类型,包括 Win32、.NET 和 UWP 应用程序。

MSIX app attach 利用预先扩展到虚拟硬盘上的 MSIX 包,这些包可以根据需要挂载到目标计算机,而不是流式传输包内容。它可以缩短部署时间,减少网络流量,并降低目标计算机上的 IOPS,但需要额外的工作来创建和维护 app attach 磁盘。

Citrix DaaS 通过安装在 VDA 计算机上的 App Packages Delivery Component 将 MSIX 和 MSIX app attach 应用程序交付给用户。此组件管理主机上包生命周期的所有方面。

有关 MSIX 和 MSIX app attach 的更多信息,请参阅 Microsoft 文档:MSIX 文档Azure 虚拟桌面中的 App Attach

注意:

  • 我们支持桌面和服务器 VDA 上的本机 MSIX 包,以及仅在桌面 VDA 上支持 .vhd.vhdx.cim 磁盘映像格式的 MSIX app attach。
  • Microsoft 不为 Server 2019 提供 AppAttach 实现。虽然 AppAttach 存在于 Server 2022 和 2025 中,但 Microsoft 不支持在这些版本上使用它。因此,我们也不支持在 Server 2022 和 2025 上使用 AppAttach。
  • 在 Windows Server 2019 上启用旁加载。
  • 确保 VDA 信任包签名所用的证书。

FlexApp 应用程序

FlexApp 是 Liquidware 开发的一种应用程序分层解决方案,它无需通过传统的应用程序安装过程修改底层基础映像,即可将任何应用程序附加到 Windows 会话。

FlexApp One 应用程序封装在一个可共享的单个文件中,允许它们在 Windows 会话上运行,而无需额外的应用程序播放器。用户可以通过单击容器文件来启动应用程序,这可以快速将一个或多个应用程序集成到他们的 Windows 工作区中。

Citrix 通过 App Packages Delivery Component 和安装在 VDA 计算机上的 FlexApp 交付代理将 FlexApp 应用程序交付给用户。这两个组件管理主机上包生命周期的所有方面。

部署和交付应用程序包

先决条件

为了支持交付 App-V、MSIX、MSIX app attach 和 FlexApp 包,您必须首先在 VDA 计算机上安装 App Packages Delivery Component。有关详细信息,请参阅在 VDA 计算机上安装 App Packages Delivery Component

在 VDA 计算机上安装 App Packages Delivery Component

App Packages Delivery Component 管理 App-V、MSIX、MSIX app attach 和 FlexApp 格式的应用程序包的发布过程。此组件在安装 VDA 时默认不安装。您可以在 VDA 安装期间或之后安装该组件。

要在 VDA 安装期间安装该组件,请使用以下任一方法:

  • 在安装向导中,转到附加组件页面,然后选择 App Packages Delivery Component 复选框。
  • 在命令行界面中,使用 /includeadditional “Citrix Personalization for App-V – VDA 选项。

要在 VDA 安装后安装该组件,请按照以下步骤操作:

  1. 在 VDA 计算机上,转到控制面板 > 程序 > 程序和功能,右键单击 Citrix Virtual Delivery Agent,然后选择更改
  2. 在出现的向导中,继续到附加组件页面,然后启用 App Packages Delivery Component 复选框。

注意:

  • Microsoft App-V 桌面客户端是用于在用户设备上运行 App-V 包中的虚拟应用程序的组件。Windows 10(1607 或更高版本)以及 Windows Server 2019 及更高版本已包含此 App-V 客户端软件。您只需在 VDA 计算机上启用它。有关详细信息,请参阅此 Microsoft 文档文章:启用 App-V 内置客户端
  • 对于 FlexApp 应用程序,除了 App Packages Delivery Component 之外,还要在 VDA 上安装 FlexApp One 代理

安装 FlexApp One 代理

  1. 在 VDA 上启动管理员命令提示符。
  2. 找到任何 FlexApp One 包的网络路径。

  3. 输入以下命令:

    \\path\to\any\FlexAppOnePackage.exe --install
    <!--NeedCopy-->
    
  4. 接受出现的任何提示。

交付打包应用程序

完成先决条件的安装后,执行以下操作以向用户交付打包应用程序:

  1. 将应用程序包存储在网络共享上
  2. 将应用程序包上传到您的环境
  3. 将应用程序添加到交付组
  4. 要启用相互依赖的 App-V 包的自动交付,请创建隔离组

将应用程序包存储在网络共享上

设置基础结构后,生成应用程序包并将其存储在网络位置,例如 UNC 或 SMB 网络共享,或 Azure 文件共享。

详细步骤如下:

  1. 生成应用程序包。有关详细信息,请参阅 Microsoft 文档:创建和管理 App-V 虚拟化应用程序

  2. 将应用程序包存储在网络位置:

    • 对于 App-V 单管理员:将包和相应的动态配置文件 (App-V) 存储在 UNC 或 SMB 网络共享或 Azure 文件共享上。

    • 对于 App-V 双管理员:从 UNC 路径将包发布到 App-V 管理服务器。(不支持从 HTTP URL 发布。)

    • 对于 MSIX 或 MSIX app attach:将包存储在 UNC 或 SMB 网络共享或 Azure 文件共享上。

    • 对于 FlexApp:将包存储在 UNC 或 SMB 网络共享或 Azure 文件共享上。

  3. 确保 VDA 对包存储路径具有读取权限:

    • 如果您将包存储在 AD 域中的 UNC 或 SMB 网络共享上,请授予 VDA 计算机对存储路径的读取权限。为此,您可以明确授予计算机的 AD 帐户对共享的读取权限,或将该帐户包含在具有该权限的 AD 组中。

    • 如果您将包存储在 Azure 文件共享上,请首先授予用户帐户对 Azure 中存储路径的读取权限。接下来,配置在 VDA 计算机上运行的 ctxAppVService 以使用该用户帐户访问包存储路径。有关详细步骤,请参阅更改用户登录帐户

更改用户登录帐户

在以下两种情况下更改用户登录帐户:

  • 要使用链接的 AD 帐户访问 Azure 文件共享上的包:
    • 连接实体必须是用户帐户,而不是计算机帐户,因为 Azure AD 不会授予计算机帐户对文件共享的读取权限。
  • 如果 MSIX 和 MSIX AppAttach 包包含服务:
    • 包必须使用在本地计算机上具有管理权限的用户帐户发布,然后才能发布给任何非管理用户。这对于安装打包服务是必需的,并且包只能发布给用户,而不能发布给计算机,这使得默认的 LocalService 帐户不适用。

VDA 调用 ctxAppVService 来访问包存储路径并执行需要管理权限的操作。默认情况下,ctxAppVService 在计算机的 LocalService 帐户的上下文中运行,该帐户使用计算机的身份向 AD 进行身份验证,不适用于上述情况。

在任何一种情况下,都必须重新配置服务以使用具有本地管理权限并已授予对包存储位置(无论是 SMB 共享还是 Azure 文件共享)读取访问权限的 AD 用户帐户,具体如下:

  1. 启动服务,右键单击 ctxAppVService,然后选择属性
  2. 登录选项卡上,选择此帐户
    1. 输入具有本地管理权限和对包存储路径读取权限的用户帐户。
    2. 两次输入用户的密码。
  3. 单击确定

将应用程序包上传到您的环境

将应用程序包按需存储到网络位置后,将其上传到您的环境以进行交付。根据需要使用以下任一方法:

准备工作

Citrix DaaS 使用 VDA 计算机设置与网络位置的连接以进行包发现。因此,请事先创建交付组,并确保组中至少有一个 VDA 满足以下要求:

  • VDA 版本:
    • 要发现 App-V 包:2203 或更高版本
    • 要发现 MSIX 和 MSIX app attach 包:2209 或更高版本
    • 要发现 FlexApp 包:2311 或更高版本以及 FlexApp 代理软件
  • App Packages Delivery Component:已安装
  • 包位置的权限:读取(有关详细信息,请参阅将应用程序包存储在网络共享上。)
  • 电源:已开启
  • 状态:已注册
批量上传应用程序包

将网络位置中的包上传到您的环境。在上传之前,请确保您已准备好以下各项:

要批量上传包,请按照以下步骤操作:

  1. 在左侧窗格中,选择应用程序包
  2. 来源选项卡上,单击添加来源按钮。添加来源页面随即出现。
  3. 名称字段中,输入包来源的描述性名称。
  4. 交付组字段中,单击选择交付组。接下来,选择一个满足准备工作中要求的交付组,然后单击确定
  5. 位置类型字段中,根据您存储包的位置选择 Microsoft App-V 服务器网络共享,然后完成相应的设置:
    • 如果您选择 Microsoft App-V 服务器,请输入以下信息:
      • 管理服务器的 URL。示例:http://appv-server.example.com
      • 管理服务器管理员的登录凭据。
      • 发布服务器的 URL 和端口号。示例:http://appv-server.example.com:3330
    • 如果您选择网络共享,请指定以下信息:
      • 输入网络共享的 UNC 路径。示例:\\Package-Server\apps\
      • 选择要上传的包类型。选项包括 App-V、MSIX、MSIX app attach 和 FlexApp。
      • 指定是否搜索子文件夹以查找包。

        注意:

        如果您在包含 cim 映像的文件夹结构中搜索 MSIX app attach 包,请确保选择搜索子文件夹。否则,磁盘将无法正确发现。

  6. 单击添加来源

    添加来源页面关闭,新添加的来源显示在来源列表中。Citrix DaaS 使用交付组中的 VDA 将包上传到您的环境。上传完成后,状态字段显示导入成功。相应的包显示在选项卡上。

    注意:

    要检查来源位置中的包更新并将其导入到您的环境,请在来源列表中选择该位置,然后单击检查包更新

逐个上传应用程序包

将网络共享中的应用程序包上传到您的环境。在上传之前,请确保您已准备好以下各项:

  • 满足准备工作中要求的交付组
  • 网络位置路径。

要将包上传到您的环境,请按照以下步骤操作:

  1. 在左侧窗格中,选择应用程序包
  2. 选项卡上,单击添加包按钮。添加包页面随即出现。
  3. 交付组字段中,单击选择交付组。接下来,选择一个满足准备工作中要求的交付组,然后单击确定
  4. 包完整路径字段中,根据需要输入路径:
    • 要一次上传多个包,请输入它们的完整路径,用分号 (;) 分隔。示例:\\Package-Server\apps\office365.appv;\\Package-Server\apps\skype.msix;\\Package-Server\apps\slack.vhd
    • 要上传网络共享上存在的所有包,请输入存储路径。示例:\\package-Server\apps\
  5. 单击添加包

    应用程序包显示在选项卡上。

将应用程序添加到交付组

应用程序包完全上传到您的环境后,根据需要将其应用程序添加到一个或多个交付组。因此,与这些交付组关联的用户可以访问这些应用程序。

注意:

  • 您可以通过交付组将打包应用程序交付到单会话 VDA 和多会话 VDA。
  • 默认情况下,最终用户可以访问分配给与其单会话(或称为桌面)VDA 关联的交付组的所有打包应用程序。要将打包应用程序在桌面 VDA 上的可见性限制为特定用户或组,请转到应用程序节点,选择应用程序,然后选择编辑应用程序属性 > 限制可见性进行更改。请参阅限制应用程序的可见性

要将包中的一个或多个应用程序添加到多个交付组,请按照以下步骤操作:

  1. 在左侧窗格中,选择应用程序包
  2. 选项卡上,根据需要选择一个包。
  3. 在操作栏中,单击添加交付组将应用程序分配给交付组页面随即出现。
  4. 根据需要选择包中的一个或多个应用程序,然后单击下一步
  5. 在交付组列表中,选择要分配应用程序的组,然后单击下一步

    注意:

    • 如果您选择了 MSIX 或 MSIX app attach 包,则列表中仅显示 VDA 版本为 2106 或更高版本的交付组。
    • 如果您选择了 FlexApp 包,则列表中仅显示 VDA 版本为 2402 或更高版本的交付组。
  6. 单击完成

您还可以在以下情况下将打包应用程序添加到交付组:

(可选)为 App-V 包创建隔离组

您可以创建隔离组以启用相互依赖的 App-V 包的自动交付。

注意:

隔离组支持 App-V 单管理员方法。如果您使用的是 App-V 双管理员方法,则可以通过在 Microsoft App-V 基础结构中创建连接组来实现相同的目标。有关详细信息,请参阅此 Microsoft 文档文章:关于连接组文件

关于隔离组

隔离组是相互依赖的应用程序包的集合,它们必须在同一个 Windows 沙盒中运行以创建虚拟环境。Citrix App-V 隔离组与 App-V 连接组相似但不完全相同。隔离组包括两种类型的包:

  • 显式应用程序包:具有特定许可要求的应用程序。您可以通过将这些应用程序添加到交付组来将其限制在特定范围的用户。
  • 自动应用程序包:始终可供所有用户使用的应用程序,无论它们是否已添加到交付组。

例如,应用程序 app-a 需要 JRE 1.7 才能运行。您可以创建一个隔离组,其中包含 app-a(标记为显式)和 JRE 1.7(标记为自动)。接下来,将 app-a 的 App-V 包添加到一个或多个交付组。当用户启动 app-a 时,JRE 1.7 会自动随之部署。

当用户启动隔离组中标记为显式的 App-V 应用程序时,Citrix DaaS 会检查用户对交付组中应用程序的访问权限。如果用户有权访问该应用程序,则同一隔离组中的任何自动应用程序包都将可供该用户使用。

您无需将自动包添加到任何交付组。如果隔离组中有另一个显式应用程序包,则只有当该包位于同一交付组中时,该包才可供用户使用。

创建 App-V 隔离组

创建隔离组并将相互依赖的应用程序包添加到其中。详细步骤如下:

  1. 隔离组选项卡上,单击添加隔离组
  2. 输入隔离组的名称和描述。环境中所有 App-V 单管理员包都显示在可用包列表中。
  3. 可用包列表中,根据需要选择一个应用程序,然后单击右箭头。所选应用程序显示在隔离组中的包列表中。
  4. 部署字段中,为应用程序选择显式自动
  5. 重复步骤 2-3 以添加更多包。
  6. 要调整列表中包的顺序,请单击向上或向下箭头。
  7. 单击保存

注意:

隔离组配置会导致在 VDA 上创建 App-V 连接组。部署场景可能会变得复杂,并且 App-V 客户端支持一次只在一个活动连接组中的包。我们建议您避免将同一个包添加到添加到同一个交付组的两个不同隔离组中。

最佳实践

  • 要部署 App-V 包,请使用 PowerShell 命令 Enable-AppV 在 VDA 上启用 App-V 子系统。
  • 要部署 MSIX(和 AppAttach)包,VDA 必须信任包签名所用的证书。
  • 在 Windows Server 2019 上,启用旁加载以部署 MSIX 包。Windows 10、11、Windows Server 2022 和 2025 不需要旁加载。
  • App Attach 在 Windows Server 2019 上没有任何实现,并且目前 Microsoft(或 Citrix 扩展)不支持在 Windows Server 2022 或 2025 上使用它。

高级

自动化打包应用程序发布

您可以使用 PowerShell 命令自动化打包应用程序发布:

在 Delivery Controller™ 上,运行以下 PowerShell 命令:

  1. 要加载包发现模块中存在的命令:

    Import-Module "D:\Support\Tools\Scripts\Citrix.Cloud.AppLibrary.Admin.v1.psm1"
    <!--NeedCopy-->
    

    注意:

    包发现模块的版本可以在 Citrix DaaS ISO 上找到,路径如步骤 1 中所述。

  2. 包发现模块必须来自支持您要发布的包类型(即 FlexAppOne 应用程序需要 2311 或更高版本)的 Citrix DaaS 版本 ISO。我们建议使用最新可用版本。
  3. 要检索相关的交付组 ID 和打包应用程序 ID:

    Get-BrokerDesktopGroup | Format-Table Uid, Name
    Get-AppLibAppVApplication | Format-Table Uid, Name
    <!--NeedCopy-->
    
  4. 要发布包并创建相应的 BrokerMachineConfigurations:

    Publish-PackagedApplication -AppLibararyApplicationUid <AppLibararyApplication.Uid > -DesktopGroupUid <DesktopGroup.Uid>
    <!--NeedCopy-->
    
  5. 要同步 Broker 配置,这些配置稍后会发送到 VDA 上的 Broker 代理:

    Update-DesktopGroupMachineConfigurations -DesktopGroupUid <DesktopGroup.Uid>
    <!--NeedCopy-->
    

    注意:

    确保在通过 PowerShell 命令行发布或从交付组中删除打包应用程序后运行 PowerShell 命令 Update-DesktopGroupMachineConfigurations。否则,有关已发布应用程序的信息将无法正确发送到 VDA,并且启动将失败。

限制应用程序的可见性

在 Citrix DaaS 环境中,当应用程序从包发布到桌面时,系统会遵守这些应用程序的 Active Directory (AD) 用户和组可见性设置。但是,即使用户只能看到包中的一个应用程序,也必须将整个包部署到虚拟桌面(或无缝应用程序)会话,因为单个包组件无法在 VDA 上细分。此外,在 VDA 版本 2503 之前,在初始发布后减少应用程序可见性的更改不会导致在后续桌面启动时清理以前发布的包。此外,其他可见性层(例如桌面与工作区可见性)在这些 AD 可见性分配之上运行。

您可以控制打包应用程序是否必须显示在 Workspace 中或部署到用户的 VDI 桌面会话。打包应用程序发布后,您可以使用 PowerShell 命令 Set-BrokerApplication -Name "MyApp" -PackagedApplicationVisibility "Workspace|Desktop|WorkspaceAndDesktop" 更新 BrokerApplictaion 上的 PackagedApplicationVisibility 属性。

PackagedApplicationVisibility 的默认值为 WorkspaceAndDesktop

Workspace 值:应用程序仅显示在 WorkspaceApp 中,可用于无缝应用程序启动,但应用程序不会自动发布到用户启动的任何桌面会话。

Desktop 值:隐藏 WorkspaceApp 中的应用程序图标,使其无法用于无缝应用程序启动,但如果用户通过其 AD 组设置也有权访问该应用程序,则该应用程序仍可部署到用户的桌面会话。

注意:

发布到单会话静态桌面的打包应用程序永远不会在 Workspace App 中可用,无论此设置中配置的值如何。

应用程序包