连接组虚拟环境

在本主题中:

如何确定包优先级

虚拟环境及其当前状态与连接组相关联,而不是与各个包相关联。 如果从连接组中删除 App-V 包,则作为连接组一部分存在的状态将不会随包一起迁移。

如果同一包是两个不同的连接组的一部分,则必须指示 App-V 应使用哪个连接组。 例如,连接组中可能有两个包,每个包都定义相同的注册表 DWORD 值。

使用的连接组基于 包在 AppConnectionGroup XML 文档中的显示顺序:

  • 第一个包的优先级最高。

  • 第二个包具有第二高优先级。

请考虑以下示例部分:

<appv:Packages><appv:PackagePackageId="A8731008-4523-4713-83A4-CD1363907160"VersionId="E889951B-7F30-418B-A69C-B37283BC0DB9"/><appv:PackagePackageId="1DC709C8-309F-4AB4-BD47-F75926D04276"VersionId="01F1943B-C778-40AD-BFAD-AC34A695DF3C"/><appv:PackagePackageId="04220DCA-EE77-42BE-A9F5-96FD8E8593F2"VersionId="E15EFFE9-043D-4C01-BC52-AD2BD1E8BAFA"/></appv:Packages>

假设在第一个和第三个包中定义了相同的 DWORD 值 ABC (HKEY_LOCAL_MACHINE\software\contoso\finapp\region),例如:

  • 包 1 (A8731008-4523-4713-83A4-CD1363907160) :HKEY_LOCAL_MACHINE\software\contoso\finapp\region=5

  • 包 3 (04220DCA-EE77-42BE-A9F5-96FD8E8593F2) :HKEY_LOCAL_MACHINE\software\contoso\finapp\region=10

由于包 1 首先出现,AppConnectionGroup 的虚拟环境将具有单个 DWORD 值 5 (HKEY_LOCAL_MACHINE\software\contoso\finapp\region=5)。 这意味着,包 1、包 2 和包 3 中的虚拟应用程序在查询HKEY_LOCAL_MACHINE\software\contoso\finapp\region时都将看到值 5。

其他虚拟环境资源也以类似的方式进行解析,但通常情况是在注册表中发生冲突。

将相同的包路径合并到连接组中的一个虚拟目录

如果连接组中的两个或多个包包含相同的目录路径,则路径将合并到连接组虚拟环境中的单个虚拟目录中。 这种路径合并允许一个包中的应用程序访问不同包中的文件。

从连接组中删除包时,删除的包中的应用程序将无法再访问连接组中剩余包中的文件。

App-V 在连接组中查找文件名称的顺序由连接组清单文件中列出 App-V 包的顺序指定。

以下示例显示了 包 A 和包B 的连接组中文件名查找的顺序和关系。

包 A 包 B

C:\Windows\System32

C:\Windows\System32

C:\AppTest

C:\AppTest

 

在上面的示例中,当虚拟化应用程序尝试查找特定文件时,将首先搜索包 A 以查找匹配的文件路径。 如果未找到匹配的路径,则会使用以下映射规则搜索包 B:

  • 如果两个应用程序包中同一虚拟文件夹层次结构中存在名为 test.txt 的文件,则使用第一个匹配文件。

  • 如果名为 bar.txt 的文件存在于一个应用程序包的虚拟文件夹层次结构中,但另一个应用程序包中不存在,则使用第一个匹配文件。

管理连接组