共用方式為


關於連線群組虛擬環境

適用於

  • Windows 10
  • Windows 11

如何決定套件優先順序

虛擬環境及其目前的狀態會與聯機群組相關聯,而不是與個別套件相關聯。 如果您從連線群組中移除App-V套件,則存在於連線群組中的狀態將不會隨著套件一起移轉。

如果相同的套件是兩個不同連線群組的一部分,您必須指出App-V應該使用哪個連線群組。 例如,您在連線群組中可能有兩個套件,其中每個封裝定義相同的登錄 DWORD 值。

所使用的連接群組是以套件出現在 AppConnectionGroup XML 檔內的順序為基礎:

  • 第一個套件的優先順序最高。
  • 第二個套件具有第二高的優先順序。

請考慮下列範例區段:

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

假設在第一個和第三個套件中定義相同的 DWORD 值 ABC (HKEY_LOCAL_MACHINE\software\contoso\finapp\region)。

在此範例中,DWORD 值定義會如下所示:

  • 套件 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 的虛擬環境將具有 5 (HKEY_LOCAL_MACHINE\software\contoso\finapp\region=5) 的單一 DWORD 值。 這個結果表示,當封裝 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

當虛擬化應用程式嘗試尋找特定檔案時,App-V 會在套件 A 中搜尋相符的檔案路徑。如果在套件 A 中找不到相符的路徑,則會使用下列對應規則搜尋套件 B:

  • 如果名為 test.txt 的檔案存在於兩個應用程式套件中的相同虛擬資料夾階層中,App-V 將會使用第一個相符的檔案。
  • 如果名為 bar.txt的 檔案存在於一個應用程式套件的虛擬資料夾階層中,但另一個應用程式套件中則不存在,App-V 會使用第一個相符的檔案。