애플리케이션 게시 및 클라이언트 상호 작용

적용 대상:

  • Windows 10
  • Windows 11

이 문서에서는 일반적인 App-V 클라이언트 작업 및 로컬 운영 체제와의 통합에 대한 기술 정보를 제공합니다.

Sequencer에서 만든 App-V 패키지 파일

Sequencer는 App-V 패키지를 만들고 가상화된 애플리케이션을 생성합니다. 시퀀싱 프로세스는 다음 파일을 만듭니다.

File 설명
.appv - 시퀀싱 프로세스의 캡처된 자산 및 상태 정보를 포함하는 기본 패키지 파일입니다.
- 배달 시 컴퓨터 및 특정 사용자에게 다시 적용할 수 있는 토큰화된 형식의 패키지 파일, 게시 정보 및 레지스트리의 아키텍처입니다.
.MSI 수동으로 또는 타사 배포 플랫폼을 사용하여 .appv 파일을 배포하는 데 사용할 수 있는 실행 파일 배포 래퍼입니다.
_DeploymentConfig.XML App-V 클라이언트를 실행하는 컴퓨터의 모든 사용자에게 전역적으로 배포되는 패키지의 모든 애플리케이션에 대한 기본 게시 매개 변수를 사용자 지정하는 데 사용되는 파일입니다.
_UserConfig.XML App-V 클라이언트를 실행하는 컴퓨터의 특정 사용자에게 배포된 패키지의 모든 애플리케이션에 대한 게시 매개 변수를 사용자 지정하는 데 사용되는 파일입니다.
Report.xml 생략된 드라이버, 파일 및 레지스트리 위치를 포함하여 시퀀싱 프로세스에서 발생하는 메시지의 요약입니다.
.CAB 선택 사항: 이전에 시퀀스된 가상 애플리케이션 패키지를 자동으로 다시 빌드하는 데 사용되는 패키지 가속기 파일입니다.
.appvt 선택 사항: 일반적으로 재사용되는 Sequencer 설정을 유지하는 데 사용되는 Sequencer 템플릿 파일입니다.

시퀀싱에 대한 자세한 내용은 App-V를 사용하여 새 애플리케이션을 시퀀싱하는 방법을 참조하세요.

appv 파일에 무엇이 있나요?

appv 파일은 XML 및 비 XML 파일을 단일 엔터티에 함께 저장하는 컨테이너입니다. 이 파일은 OPC(Open Packaging Conventions) 표준을 기반으로 하는 AppX 형식으로 빌드됩니다.

appv 파일 내용을 보려면 패키지의 복사본을 만들고 복사한 파일의 이름을 .zip 확장명으로 바꿉니다.

appv 파일에는 가상 애플리케이션을 만들고 게시할 때 사용되는 다음 폴더와 파일이 포함됩니다.

이름 유형 설명
루트 파일 폴더 시퀀싱 중에 캡처된 가상화된 애플리케이션의 파일 시스템을 포함하는 디렉터리입니다.
[Content_Types].xml XML 파일 appv 파일의 핵심 콘텐츠 형식 목록(예: DLL, EXE, BIN).
AppxBlockMap.xml XML 파일 App-V 패키지에서 파일의 위치 및 유효성을 검사할 수 있는 파일, 블록 및 BlockMap 요소를 사용하는 appv 파일의 레이아웃입니다.
AppxManifest.xml XML 파일 패키지를 추가, 게시 및 시작하는 데 필요한 정보가 포함된 패키지의 메타데이터입니다. 확장 지점(파일 형식 연결 및 바로 가기) 및 패키지와 연결된 이름 및 GUID를 포함합니다.
FilesystemMetadata.xml XML 파일 특성(예: 디렉터리, 파일, 불투명 디렉터리, 빈 디렉터리, 길고 짧은 이름)을 포함하여 시퀀싱 중에 캡처된 파일 목록입니다.
PackageHistory.xml XML 파일 시퀀싱 컴퓨터(운영 체제 버전, 인터넷 Explorer 버전, .Net Framework 버전) 및 프로세스(업그레이드, 패키지 버전)에 대한 정보입니다.
Registry.dat DAT 파일 패키지의 시퀀싱 프로세스 중에 캡처된 레지스트리 키 및 값입니다.
StreamMap.xml XML 파일 기본 및 게시 기능 블록에 대한 파일 목록입니다. 게시 기능 블록에는 ICO 파일과 패키지를 게시하는 데 필요한 파일 부분(EXE 및 DLL)이 포함되어 있습니다. 이 경우 기본 기능 블록에는 시퀀싱 프로세스 중에 스트리밍에 최적화된 파일이 포함됩니다.

App-V 클라이언트 데이터 스토리지 위치

App-V 클라이언트는 가상 애플리케이션이 제대로 실행되고 로컬로 설치된 애플리케이션처럼 작동하도록 작업을 수행합니다. 가상 애플리케이션을 열고 실행하는 프로세스에는 사용자가 예상하는 기존 애플리케이션의 필수 구성 요소가 애플리케이션에 있는지 확인하기 위해 가상 파일 시스템 및 레지스트리에서 매핑해야 합니다. 이 섹션에서는 가상 애플리케이션을 실행하는 데 필요한 자산에 대해 설명하고 App-V에서 자산을 저장하는 위치를 나열합니다.

이름 위치 설명
패키지 저장소 %ProgramData%\App-V 읽기 전용 패키지 파일의 기본 위치입니다.
컴퓨터 카탈로그 %ProgramData%\Microsoft\AppV\Client\Catalog 컴퓨터별 구성 문서를 포함합니다.
사용자 카탈로그 %AppData%\Microsoft\AppV\Client\Catalog 사용자별 구성 문서를 포함합니다.
바로 가기 백업 %AppData%\Microsoft\AppV\Client\Integration\ShortCutBackups 패키지 게시 취소 시 복원을 사용하도록 설정하는 이전 통합 지점을 저장합니다.
쓰기 중 복사(COW) 로밍 %AppData%\Microsoft\AppV\Client\VFS 패키지 수정을 위한 쓰기 가능한 로밍 위치입니다.
쓰기 시 복사(COW) 로컬 %LocalAppData%\Microsoft\AppV\Client\VFS 패키지 수정을 위한 쓰기 가능한 비 로밍 위치입니다.
컴퓨터 레지스트리 HKLM\Software\Microsoft\AppV 컴퓨터용 VReg 또는 전역적으로 게시된 패키지(컴퓨터 하이브)를 비롯한 패키지 상태 정보를 포함합니다.
사용자 레지스트리 HKCU\Software\Microsoft\AppV VReg를 포함한 사용자 패키지 상태 정보를 포함합니다.
사용자 레지스트리 클래스 HKCU\Software\Classes\AppV 더 많은 사용자 패키지 상태 정보를 포함합니다.

표에 대한 자세한 내용은 아래 섹션과 문서 전체에서 제공됩니다.

패키지 저장소

App-V 클라이언트는 패키지 저장소에 탑재된 애플리케이션 자산을 관리합니다. 이 기본 스토리지 위치는 %ProgramData%\App-V이지만 로컬 레지스트리(HKLM\Software\Microsoft\AppV\Client\Streaming 키 아래의 PackageInstallationRoot 값)를 수정하는 Set-AppVClientConfiguration Windows PowerShell cmdlet을 사용하여 설치 도중 또는 설치 후에 구성할 수 있습니다. 패키지 저장소는 클라이언트 운영 체제의 로컬 경로에 있어야 합니다. 개별 패키지는 패키지 GUID 및 버전 GUID의 이름을 따서 명명된 하위 디렉터리의 패키지 저장소에 저장됩니다.

다음은 특정 애플리케이션에 대한 경로의 예입니다.

C:\ProgramData\App-V\PackGUID\VersionGUID

설치하는 동안 패키지 저장소의 기본 위치를 변경하려면 App-V 데스크톱 클라이언트 사용을 참조하세요.

공유 콘텐츠 저장소

App-V 클라이언트가 공유 콘텐츠 저장소 모드로 구성된 경우 스트림 오류가 발생할 때 데이터가 디스크에 기록되지 않습니다. 즉, 패키지에 최소한의 로컬 디스크 공간(데이터 게시)이 필요합니다. 로컬 스토리지를 제한할 수 있는 VDI 환경에서는 가능한 한 적은 디스크 공간을 사용하는 것이 중요합니다. 고성능 네트워크 위치(예: SAN)에서 애플리케이션을 스트리밍하여 디스크 공간 사용을 최소화할 수 있습니다. 자세한 내용은 Microsoft App-V 5.0의 공유 콘텐츠 저장소 - 백그라운드에서를 참조하세요.

참고

App-V 클라이언트에 공유 콘텐츠 저장소 구성을 사용하는 경우에도 컴퓨터 및 패키지 저장소는 로컬 드라이브에 있어야 합니다.

패키지 카탈로그

App-V 클라이언트는 다음 파일 기반 위치를 관리합니다.

  • 카탈로그(사용자 및 컴퓨터).
  • 레지스트리 위치는 패키지가 게시 대상으로 지정되는 방식에 따라 달라집니다. 컴퓨터에 대한 카탈로그(데이터 저장소)와 각 개별 사용자에 대한 카탈로그가 있습니다. 컴퓨터 카탈로그는 모든 사용자 또는 특정 사용자에게 적용할 수 있는 전역 정보를 저장하고 사용자 카탈로그는 특정 사용자에게 적용되는 정보를 저장합니다. 카탈로그는 동적 구성 및 매니페스트 파일의 컬렉션입니다. 패키지 버전당 파일 및 레지스트리 모두에 대한 개별 데이터가 있습니다.

컴퓨터 카탈로그

이 표에 설명된 위치는 %programdata%\Microsoft\AppV\Client\Catalog\ 폴더에서 찾을 수 있습니다.

위치
Description 패키지를 추가하고 게시할 때 컴퓨터에서 사용자가 사용할 수 있는 패키지 문서를 저장합니다. 그러나 게시 시 패키지가 "전역"인 경우 모든 사용자가 통합을 사용할 수 있습니다.

패키지가 전역이 아닌 경우 통합은 특정 사용자에 대해서만 게시되지만 클라이언트 컴퓨터의 모든 사용자에게 수정되고 표시되는 전역 리소스가 여전히 있습니다(예: 패키지 디렉터리가 공유 디스크 위치에 있는 경우).

컴퓨터(전역 또는 비 전역)의 사용자가 패키지를 사용할 수 있는 경우 매니페스트는 컴퓨터 카탈로그에 저장됩니다. 패키지가 전역적으로 게시되면 머신 카탈로그에 저장된 동적 구성 파일이 있습니다. 따라서 패키지가 전역인지 여부를 결정하는 것은 컴퓨터 카탈로그에 정책 파일(UserDeploymentConfiguration 파일)이 있는지 여부에 따라 정의됩니다.
기본 스토리지 위치 %programdata%\Microsoft\AppV\Client\Catalog<br>
이 위치는 패키지 저장소 위치와 다릅니다. 패키지 저장소는 패키지 파일의 골든 또는 기본 복사본입니다.
컴퓨터 카탈로그의 파일 - Manifest.xml
- DeploymentConfiguration.xml
- UserManifest.xml(전역적으로 게시된 패키지)
- UserDeploymentConfiguration.xml(전역적으로 게시된 패키지)
패키지가 연결 그룹의 일부일 때 사용되는 추가 컴퓨터 카탈로그 위치 다음 위치는 이전에 기본 스토리지 위치로 언급된 특정 패키지 위치 외에 있습니다.

%programdata%\Microsoft\AppV\Client\Catalog\PackageGroups\ConGroupGUID\ConGroupVerGUID
패키지가 연결 그룹의 일부인 경우 컴퓨터 카탈로그의 추가 파일 - PackageGroupDescriptor.xml
- UserPackageGroupDescriptor.xml(전역적으로 게시된 연결 그룹)

사용자 카탈로그

이 표에 설명된 위치는 appdata\roaming\Microsoft\AppV\Client\Catalog\ 폴더에서 찾을 수 있습니다.

위치
Description 게시 프로세스 중에 생성됩니다. 패키지를 게시하고 패키지를 시작할 때 특정 사용자에게 프로비전되도록 하는 데 사용되는 정보를 포함합니다. 로밍 위치에 만들어지고 사용자별 게시 정보가 포함됩니다.

사용자에 대해 패키지를 게시하면 정책 파일이 사용자 카탈로그에 저장됩니다. 동시에 매니페스트의 복사본도 사용자 카탈로그에 저장됩니다. 사용자에 대한 패키지 자격이 제거되면 관련 패키지 파일이 사용자 카탈로그에서 제거됩니다. 사용자 카탈로그를 살펴보면 관리자가 동적 구성 파일의 존재를 볼 수 있습니다. 이 파일은 패키지에 해당 사용자에 대한 자격이 있음을 나타냅니다.

로밍 사용자의 경우 기본적으로 사용자를 대상으로 하는 레거시 App-V 동작을 유지하려면 사용자 카탈로그가 로밍 또는 공유 위치에 있어야 합니다. 권한 및 정책은 컴퓨터가 아닌 사용자에 연결되므로 프로비전되면 사용자와 함께 로밍해야 합니다.
기본 스토리지 위치 appdata\roaming\Microsoft\AppV\Client\Catalog\Packages\PkgGUID\VerGUID
사용자 카탈로그의 파일 - UserManifest.xml
- DynamicConfiguration.xml 또는 UserDeploymentConfiguration.xml
패키지가 연결 그룹의 일부일 때 사용되는 추가 사용자 카탈로그 위치 다음 위치는 위에서 언급한 특정 패키지 위치 외에 있습니다.

appdata\roaming\Microsoft\AppV\Client\Catalog\PackageGroups\PkgGroupGUID\PkgGroupVerGUID
패키지가 연결 그룹의 일부인 경우 컴퓨터 카탈로그의 추가 파일 UserPackageGroupDescriptor.xml

바로 가기 백업

게시 프로세스 중에 App-V 클라이언트는 모든 바로 가기 및 통합 지점을 %AppData%\Microsoft\AppV\Client\Integration\ShortCutBackups로 백업합니다. 이 백업을 사용하면 패키지가 게시되지 않은 경우 통합 지점이 이전 버전으로 복원됩니다.

파일 쓰기에 복사

패키지 저장소에는 게시 서버에서 스트리밍된 패키지 파일의 기본 복사본이 포함되어 있습니다. App-V 애플리케이션을 정상적으로 작업하는 동안 사용자 또는 서비스에서 파일을 변경해야 할 수 있습니다. 그러나 이러한 변경 내용은 애플리케이션을 복구하는 기능을 유지하기 위해 패키지 저장소에서 변경되지 않으므로 이러한 변경 내용이 제거됩니다. COW(Write에 복사)라고 하는 이러한 위치는 로밍 및 비 로밍 위치를 모두 지원합니다. 수정 내용이 저장되는 위치는 애플리케이션이 네이티브 환경에서 변경 내용을 쓰도록 프로그래밍된 위치에 따라 달라집니다.

COW 로밍

위에서 설명한 COW 로밍 위치는 일반적인 %AppData% 위치 또는 \Users\username>\<AppData\Roaming 위치를 대상으로 하는 파일 및 디렉터리에 대한 변경 내용을 저장합니다. 그런 다음 이러한 디렉터리와 파일은 운영 체제 설정에 따라 로밍됩니다.

COW 로컬

COW 로컬 위치는 로밍 위치와 비슷하지만 로밍 지원이 구성된 경우에도 디렉터리와 파일이 다른 컴퓨터로 로밍되지 않습니다. 위에서 설명한 COW 로컬 위치는 %AppData% 위치가 아닌 일반적인 창에 적용 가능한 변경 내용을 저장합니다. 나열된 디렉터리마다 다르지만 일반적인 Windows 위치(예: Common AppData 및 Common AppDataS)에 대한 두 위치가 있습니다. S는 가상 서비스가 로그인한 사용자와 다른 관리자 권한 사용자로 변경을 요청할 때 제한된 위치를 나타냅니다. 비S 위치는 사용자 기반 변경 내용을 저장합니다.

패키지 레지스트리

애플리케이션이 패키지 레지스트리 데이터에 액세스하려면 먼저 App-V 클라이언트에서 애플리케이션에서 패키지 레지스트리 데이터를 사용할 수 있도록 해야 합니다. App-V 클라이언트는 모든 레지스트리 데이터에 대한 백업 저장소로 실제 레지스트리를 사용합니다.

새 패키지가 App-V 클라이언트에 추가되면 레지스트리의 복사본입니다. 패키지의 DAT 파일은 %ProgramData%\Microsoft\AppV\Client\VREG{Version GUID}.dat 만들어집니다. 파일의 이름은 가 있는 버전 GUID입니다. DAT 확장. 이 복사본이 만들어지는 이유는 패키지의 실제 하이브 파일이 사용되지 않도록 하기 위한 것이며, 이로 인해 나중에 패키지가 제거되지 않습니다.

패키지 저장소>에서 Registry.dat%ProgramData%\Microsoft\AppV\Client\Vreg\{VersionGUID}.dat

패키지의 첫 번째 애플리케이션이 클라이언트에서 시작되면 클라이언트는 하이브 파일에서 콘텐츠를 단계화하거나 복사하여 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppV\Client\Packages\PackageGuid\Versions\VersionGUID\REGISTRY 아래의 대체 위치에 패키지 레지스트리 데이터를 다시 만듭니다. 스테이징된 레지스트리 데이터에는 두 가지 유형의 컴퓨터 데이터와 사용자 데이터가 있습니다. 컴퓨터 데이터는 컴퓨터의 모든 사용자 간에 공유됩니다. 사용자 데이터는 사용자별 위치 HKCU\Software\Microsoft\AppV\Client\Packages\PackageGUID\Registry\User로 각 사용자에 대해 준비됩니다. 컴퓨터 데이터는 궁극적으로 패키지 제거 시 제거되고 사용자 게시 취소 작업에서 사용자 데이터가 제거됩니다.

패키지 레지스트리 스테이징 및 연결 그룹 레지스트리 스테이징

연결 그룹이 있는 경우 레지스트리를 스테이징하는 이전 프로세스는 true이지만 처리할 하이브 파일이 하나 이상 있는 대신 둘 이상이 있습니다. 파일은 연결 그룹 XML에 표시되는 순서대로 처리되며, 첫 번째 기록기는 충돌을 이긴다.

스테이징된 레지스트리는 단일 패키지 사례와 동일한 방식으로 유지됩니다. 스테이징된 사용자 레지스트리 데이터는 사용하지 않도록 설정될 때까지 연결 그룹에 대해 유지됩니다. 스테이징된 컴퓨터 레지스트리 데이터는 연결 그룹 제거에서 제거됩니다.

가상 레지스트리

VREG(가상 레지스트리)의 목적은 패키지 레지스트리와 네이티브 레지스트리의 병합된 단일 보기를 애플리케이션에 제공하는 것입니다. 또한 COW(Copy-on-write) 기능을 제공합니다. 즉, 가상 프로세스의 컨텍스트에서 레지스트리를 변경한 내용은 별도의 COW 위치에 적용됩니다. 이 기능은 VREG가 레지스트리 COW>패키지>네이티브의 채워진 위치를 기반으로 최대 3개의 개별 레지스트리 위치를 단일 보기로 결합해야 한다는 것을 의미합니다. 레지스트리 데이터에 대한 요청이 이루어지면 요청된 데이터를 찾을 때까지 순서대로 찾습니다. 즉, COW 위치에 저장된 값이 있으면 다른 위치로 진행되지 않지만 COW 위치에 데이터가 없으면 적절한 데이터를 찾을 때까지 패키지 및 네이티브 위치로 진행됩니다.

레지스트리 위치

패키지가 개별적으로 게시되는지 아니면 연결 그룹의 일부로 게시되는지에 따라 App-V 클라이언트가 레지스트리 정보를 저장하는 두 개의 패키지 레지스트리 위치와 두 개의 연결 그룹 위치가 있습니다. 패키지에 대한 3개의 COW 위치와 VREG에서 만들고 관리하는 연결 그룹의 경우 3개의 COW 위치가 있습니다. 패키지 및 연결 그룹에 대한 설정은 공유되지 않습니다.

단일 패키지 VReg

다음 표의 레지스트리는 Registry\Client\Packages\PkgGUID\ 폴더에 있습니다.

위치 설명
암소 - Machine Registry\Client\Packages\PkgGUID\REGISTRY(관리자 권한 상승 프로세스만 작성할 수 있습니다).
- User Registry\Client\Packages\PkgGUID\REGISTRY(Software\Classs를 제외한 HKCU에 기록된 모든 항목 로밍
- 사용자 레지스트리 클래스\Client\Packages\PkgGUID\REGISTRY(HKCU\Software\Classes 쓰기 및 관리자 권한 없는 프로세스의 경우 HKLM)
패키지 - Machine Registry\Client\Packages\PkgGUID\Versions\VerGuid\Registry\Machine
- 사용자 레지스트리 클래스\Client\Packages\PkgGUID\Versions\VerGUID\Registry
네이티브 - 네이티브 애플리케이션 레지스트리 위치

연결 그룹 VReg

다음 표의 레지스트리는 Machine Registry\Client\PackageGroups\GrpGUID\ 및 사용자 레지스트리 클래스\Client\PackageGroups\GrpGUID\ 폴더에 있습니다.

위치 설명
암소 - Machine Registry\Client\PackageGroups\GrpGUID\REGISTRY(권한 상승 프로세스만 작성할 수 있음)
- User Registry\Client\PackageGroups\GrpGUID\REGISTRY(Software\Classs를 제외한 HKCU에 기록된 모든 항목)
- 사용자 레지스트리 클래스\Client\PackageGroups\GrpGUID\REGISTRY
패키지 - Machine Registry\Client\PackageGroups\GrpGUID\Versions\VerGUID\REGISTRY
- 사용자 레지스트리 클래스\Client\PackageGroups\GrpGUID\Versions\VerGUID\REGISTRY
네이티브 - 네이티브 애플리케이션 레지스트리 위치

HKLM에는 상승된 프로세스와 비고급 프로세스의 두 가지 COW 위치가 있습니다. 상승된 프로세스는 항상 HKLM에서 보안 COW에 HKLM 변경 내용을 작성합니다. 승격되지 않은 프로세스는 항상 HKCU\Software\Classes에서 비안전 COW에 HKLM 변경 내용을 씁니다. 애플리케이션이 HKLM에서 변경 내용을 읽는 경우 관리자 권한 프로세스는 HKLM에서 보안 COW의 변경 내용을 읽습니다. 비고급 읽기는 둘 다에서 읽기이며, 안전하지 않은 COW에서 먼저 변경한 내용을 선호합니다.

통과 키

관리자는 통과 키를 사용하여 패키지 및 COW 위치를 우회하여 기본 레지스트리에서만 읽을 특정 키를 구성할 수 있습니다. 통과 위치는 컴퓨터에 전역(패키지별이 아님)이며 키에 대한 경로를 추가하여 구성할 수 있습니다. 이 경로는 키 HKLM\Software\Microsoft\AppV\Subsystem\VirtualRegistry 키의 PassThroughPaths라는 REG_MULTI_SZ 값에 대한 통과로 처리되어야 합니다. 이 다중 문자열 값(및 해당 자식)에 표시되는 모든 키는 통과로 처리됩니다.

다음 위치는 기본적으로 통과 위치로 구성됩니다.

  • HKEY_CURRENT_USER\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel

  • HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\Autologger

  • HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib

  • HKEY_LOCAL_MACHINE\SOFTWARE\Policies

  • HKEY_CURRENT_USER\SOFTWARE\Policies

통과 키의 목적은 가상 애플리케이션이 성공적인 작업 또는 통합을 위해 가상이 아닌 애플리케이션에 필요한 레지스트리 데이터를 VReg에 쓰지 않도록 하는 것입니다. 정책 키는 관리자가 설정한 그룹 정책 기반 설정이 패키지 설정에 따라 사용되지 않도록 합니다. AppModel 키는 Windows 최신 UI 기반 애플리케이션과 통합하는 데 필요합니다. 관리자는 이상적으로 기본 통과 키를 수정해서는 안 되지만, 경우에 따라 관리자가 애플리케이션 동작을 조정하기 위해 통과 키를 더 추가해야 할 수 있습니다.

App-V 패키지 저장소 동작

App-V는 appv 파일에서 확장된 자산 파일이 저장되는 위치인 패키지 저장소를 관리합니다. 기본적으로 이 위치는 %ProgramData%\App-V에 저장되며 사용 가능한 디스크 공간에 의해서만 스토리지 기능 측면에서 제한됩니다. 패키지 저장소는 이전 섹션에서 설명한 대로 패키지 및 버전에 대한 GUID로 구성됩니다.

패키지 추가

App-V 패키지는 App-V 클라이언트를 사용하여 컴퓨터에 추가될 때 준비됩니다. App-V 클라이언트는 주문형 스테이징을 제공합니다. Add-AppVClientPackage cmdlet을 게시하거나 수동으로 입력할 때 데이터 구조는 패키지 저장소(C:\programdata\App-V\{PkgGUID}\{VerGUID})에 빌드됩니다. StreamMap.xml 파일에 정의된 게시 블록에 식별된 패키지 파일이 시스템에 추가되고 최상위 폴더 및 자식 파일이 준비되어 시작 시 적절한 애플리케이션 자산이 있는지 확인합니다.

패키지 탑재

Mount-AppVClientPackage PowerShell cmdlet을 입력하거나 App-V 클라이언트 UI를 사용하여 패키지를 다운로드하여 패키지를 명시적으로 로드할 수 있습니다. 이 작업은 전체 패키지를 패키지 저장소에 완전히 로드합니다.

스트리밍 패키지

스트리밍의 기본 동작을 변경하도록 App-V 클라이언트를 구성할 수 있습니다. 모든 스트리밍 정책은 HKEY_LOCAL_MACHINE\Software\Microsoft\AppV\Client\Streaming 레지스트리 키 아래에 저장됩니다. 정책은 Set-AppvClientConfiguration PowerShell cmdlet을 입력하여 설정됩니다. 스트리밍에는 다음 정책이 적용됩니다.

정책 설명
AllowHighCostLaunch 3G 및 셀룰러 네트워크를 통해 스트리밍 허용
Autoload 백그라운드 로드 설정을 지정합니다.
0 – 사용 안 함
1 – 이전에 사용한 패키지만
2 – 모든 패키지
PackageInstallationRoot 로컬 컴퓨터의 패키지 저장소에 대한 루트 폴더
PackageSourceRoot 패키지를 스트리밍해야 하는 루트 재정의
SharedContentStoreMode VDI 시나리오에 공유 콘텐츠 저장소를 사용할 수 있습니다.

이러한 설정은 App-V 패키지 자산을 클라이언트로 스트리밍하는 동작에 영향을 줍니다. 기본적으로 App-V는 초기 게시 및 기본 기능 블록을 다운로드한 후에만 필요한 자산을 다운로드합니다. 스트리밍 패키지에는 이해해야 할 세 가지 특정 동작이 있습니다.

  • 백그라운드 스트리밍
  • 최적화된 스트리밍
  • Stream 오류

백그라운드 스트리밍

Windows PowerShell cmdlet Get-AppvClientConfiguration을 사용하여 자동 로드 설정을 사용하여 백그라운드 스트리밍의 현재 모드를 확인하고 Set-AppvClientConfiguration cmdlet 또는 레지스트리(HKLM\SOFTWARE\Microsoft\AppV\ClientStreaming 키)로 수정할 수 있습니다. 백그라운드 스트리밍은 자동 로드 설정이 이전에 사용한 패키지를 다운로드하도록 설정된 기본 설정입니다. 기본 설정(value=1)에 따른 동작은 애플리케이션이 시작된 후 백그라운드에서 App-V 데이터 블록을 다운로드합니다. 이 설정은 시작 여부에 관계없이 모두 사용하지 않도록 설정(value=0)하거나 모든 패키지(value=2)에 대해 사용하도록 설정할 수 있습니다.

최적화된 스트리밍

App-V 패키지는 시퀀싱하는 동안 기본 기능 블록으로 구성할 수 있습니다. 이 설정을 사용하면 시퀀싱 엔지니어가 특정 애플리케이션 또는 애플리케이션에 대한 시작 파일을 모니터링하고 패키지에서 애플리케이션을 처음 시작할 때 스트리밍을 위해 App-V 패키지의 데이터 블록을 표시할 수 있습니다.

Stream 오류

게시 데이터 및 기본 기능 블록의 초기 스트림 후 더 많은 파일에 대한 요청은 스트림 오류를 수행합니다. 이러한 데이터 블록은 필요에 따라 패키지 저장소에 다운로드됩니다. 이러한 유연성을 통해 사용자는 패키지의 작은 부분만 다운로드할 수 있으며, 일반적으로 패키지를 시작하고 일반 작업을 실행할 수 있습니다. 다른 모든 블록은 사용자가 현재 패키지 저장소에 없는 데이터가 필요한 작업을 시작할 때 다운로드됩니다.

패키지 업그레이드

App-V 패키지는 애플리케이션의 수명 주기 내내 업데이트해야 합니다. App-V 패키지 업그레이드는 각 버전이 자체 PackageRoot 위치에 생성되므로 패키지 게시 작업과 비슷합니다. %ProgramData%\App-V{PkgGUID}{newVerGUID}. 업그레이드 작업은 동일한 패키지의 다른 버전에서 동일하고 스트리밍된 파일에 대한 하드 링크를 만들어 최적화됩니다.

패키지 제거

패키지를 제거할 때 App-V 클라이언트의 동작은 패키지 제거 방법에 따라 달라집니다. App-V 전체 인프라를 사용하여 애플리케이션을 게시 해제하면 사용자 카탈로그 파일(전역적으로 게시된 애플리케이션의 컴퓨터 카탈로그)이 제거되지만 패키지 저장소 위치와 COW 위치는 그대로 유지됩니다. Remove-AppVClientPackge Windows PowerShell cmdlet을 사용하여 App-V 패키지를 제거하면 패키지 저장소 위치가 정리됩니다. 관리 서버에서 App-V 패키지를 게시 취소해도 제거 작업은 수행되지 않습니다. 두 작업 모두 패키지 저장소 패키지 파일을 제거하지 않습니다.

로밍 레지스트리 및 데이터

App-V는 사용 중인 애플리케이션을 작성하는 방법에 따라 로밍할 때 거의 네이티브 환경을 제공할 수 있습니다. 기본적으로 App-V는 운영 체제의 로밍 구성에 따라 로밍 위치에 저장된 AppData를 로밍합니다. 파일 기반 데이터의 스토리지를 위한 다른 위치는 로밍되지 않은 위치에 있으므로 컴퓨터에서 컴퓨터로 로밍되지 않습니다.

로밍 요구 사항 및 사용자 카탈로그 데이터 스토리지

App-V는 사용자 카탈로그의 상태를 나타내는 데이터를 다음 형식으로 저장합니다.

  • %appdata%\Microsoft\AppV\Client\Catalog 아래의 파일
  • HKEY_CURRENT_USER\Software\Microsoft\AppV\Client\Packages 레지스트리 설정

이러한 파일 및 레지스트리 설정은 사용자의 카탈로그를 나타내므로 둘 다 로밍되어야 하거나 지정된 사용자에 대해 로밍해서는 안 됩니다. App-V는 %AppData%로밍을 지원하지 않지만 사용자의 프로필(레지스트리)을 로밍하거나 그 반대로 로밍하지 않습니다.

참고

Repair-AppvClientPackage cmdlet은 HKEY_CURRENT_USER 중인 사용자의 App-V 상태가 누락되었거나 %appdata%의 데이터와 일치하지 않는 패키지의 게시 상태를 복구하지 않습니다.

레지스트리 기반 데이터

App-V 레지스트리 로밍은 다음 표와 같이 두 가지 시나리오에 속합니다.

시나리오 설명
표준 사용자로 실행되는 애플리케이션 표준 사용자가 App-V 애플리케이션을 시작하면 App-V 애플리케이션용 HKLM 및 HKCU가 모두 컴퓨터의 HKCU 하이브에 저장됩니다. 이 시나리오에서는 다음과 같은 두 가지 고유한 경로를 제공합니다.

- HKLM의 위치는 HKCU\SOFTWARE\Classes\AppV\Client\Packages\{PkgGUID}\REGISTRY\MACHINE\SOFTWARE입니다.
- HKCU의 위치는 HKCU\SOFTWARE\Microsoft\AppV\Client\Packages\{PkgGUID}\REGISTRY\USER\{UserSID}\SOFTWARE입니다.

위치는 운영 체제 설정에 따라 로밍할 수 있습니다.
권한 상승으로 실행되는 애플리케이션 권한 상승으로 애플리케이션이 시작되는 경우:

- HKLM 데이터는 로컬 컴퓨터의 HKLM 하이브에 저장됩니다.
- HKCU 데이터가 사용자 레지스트리 위치에 저장됩니다.

이 시나리오에서는 이러한 설정이 일반 운영 체제 로밍 구성으로 로밍되지 않으며, 결과 레지스트리 키와 값은 다음 위치에 저장됩니다.

- HKLM의 위치는 HKLM\SOFTWARE\Microsoft\AppV\Client\Packages\{PkgGUID}\{UserSID}\REGISTRY\MACHINE\SOFTWARE입니다.
- HKCU의 위치는 HKCU\SOFTWARE\Microsoft\AppV\Client\Packages\{PkgGUID}\Registry\User\{UserSID}\SOFTWARE입니다.

App-V 및 폴더 리디렉션

App-V는 로밍 AppData 폴더(%AppData%)의 폴더 리디렉션을 지원합니다. 가상 환경이 시작되면 사용자의 로밍 AppData 디렉터리에서 로밍 AppData 상태가 로컬 캐시에 복사됩니다. 반대로 가상 환경이 종료되면 특정 사용자의 로밍 AppData와 연결된 로컬 캐시가 해당 사용자의 로밍 AppData 디렉터리의 실제 위치로 전송됩니다.

일반적인 패키지에는 AppData\Local 및 AppData\Roaming 모두에서 설정을 위해 사용자의 백업 저장소에 매핑된 여러 위치가 있습니다. 이러한 위치는 사용자 프로필에 사용자별로 저장되고 패키지 VFS 디렉터리에 대한 변경 내용을 저장하고 기본 패키지 VFS를 보호하는 데 사용되는 쓰기 위치의 복사입니다.

다음 표에서는 폴더 리디렉션이 구현되지 않은 경우 로컬 및 로밍 위치를 보여줍니다.

패키지의 VFS 디렉터리 백업 저장소의 매핑된 위치
ProgramFilesX86 C:\Users\Local\AppData\Local\Microsoft\AppV\Client\VFS\GUID>\<ProgramFilesX86
SystemX86 C:\Users\username\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\SystemX86
Windows C:\Users\username\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\Windows
appv_ROOT C:\Users\username\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\appv_ROOT
Appdata C:\Users\username\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\AppData

다음 표에서는 %AppData%에 대해 폴더 리디렉션이 구현되고 위치가 리디렉션된 경우(일반적으로 네트워크 위치로) 로컬 및 로밍 위치를 보여 줍니다.

패키지의 VFS 디렉터리 백업 저장소의 매핑된 위치
ProgramFilesX86 C:\Users\Local\AppData\Local\Microsoft\AppV\Client\VFS\GUID>\<ProgramFilesX86
SystemX86 C:\Users\Local\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\SystemX86
Windows C:\Users\Local\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\Windows
appv_ROOT C:\Users\Local\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\appv_ROOT
Appdata \Fileserver\users\Local\roaming\Microsoft\AppV\Client\VFS\<GUID>\AppData

현재 App-V 클라이언트 VFS 드라이버는 네트워크 위치에 쓸 수 없으므로 App-V 클라이언트는 폴더 리디렉션의 존재를 감지하고 게시 중 및 가상 환경이 시작될 때 로컬 드라이브에 데이터를 복사합니다. 사용자가 App-V 애플리케이션을 닫고 App-V 클라이언트가 가상 환경을 닫으면 VFS AppData의 로컬 스토리지가 네트워크에 다시 복사되어 프로세스가 반복되는 더 많은 머신으로 로밍할 수 있습니다. 프로세스 중에 발생하는 작업은 다음과 같습니다.

  1. 게시 또는 가상 환경을 시작하는 동안 App-V 클라이언트는 AppData 디렉터리의 위치를 검색합니다.
  2. 로밍 AppData 경로가 로컬이거나 AppData\Roaming 위치가 매핑되지 않은 경우 아무 일도 발생하지 않습니다.
  3. 로밍 AppData 경로가 로컬이 아닌 경우 VFS AppData 디렉터리가 로컬 AppData 디렉터리에 매핑됩니다.

이 프로세스는 App-V 클라이언트 VFS 드라이버에서 지원되지 않는 로컬이 아닌 %AppData% 문제를 해결합니다. 그러나 이 새 위치에 저장된 데이터는 폴더 리디렉션으로 로밍되지 않습니다. 애플리케이션을 실행하는 동안 모든 변경 내용은 로컬 AppData 위치에 발생하며 리디렉션된 위치에 복사해야 합니다. 프로세스는 다음과 같은 작업을 수행합니다.

  1. 또한 가상 환경을 종료하는 App-V 애플리케이션을 종료합니다.
  2. 로밍 AppData 위치의 로컬 캐시를 압축하고 .zip 파일에 저장합니다.
  3. .zip 패키징 프로세스의 끝에 있는 타임스탬프를 사용하여 파일 이름을 지정합니다.
  4. HKEY_CURRENT_USER\Software\Microsoft\AppV\Client\Packages\<GUID>\AppDataTime 레지스트리의 타임스탬프를 마지막으로 알려진 AppData 타임스탬프를 기록합니다.
  5. 폴더 리디렉션 프로세스를 호출하여 로밍 AppData 디렉터리에 업로드된 .zip 파일을 평가하고 시작합니다.

타임스탬프는 충돌이 있거나 App-V 애플리케이션이 게시되거나 가상 환경이 시작될 때 데이터 다운로드를 최적화하는 데 사용되는 경우 "마지막 기록기 우선" 시나리오를 결정하는 데 사용됩니다. 폴더 리디렉션은 지원 정책이 적용되는 다른 클라이언트에서 데이터를 사용할 수 있도록 하고 AppData\Roaming 데이터를 클라이언트의 로컬 AppData 위치에 저장하는 프로세스를 시작합니다. 프로세스 중에 발생하는 작업은 다음과 같습니다.

  1. 사용자는 가상 환경을 시작하는 애플리케이션을 시작합니다.
  2. 애플리케이션의 가상 환경이 있는 경우 가장 최근의 타임스탬프를 .zip 파일을 확인합니다.
  3. 가상 환경은 레지스트리에서 마지막으로 알려진 업로드된 타임스탬프를 확인합니다(있는 경우).
  4. 가상 환경에서는 마지막으로 알려진 로컬 업로드 타임스탬프를 .zip 파일의 타임스탬프를 초과하거나 같지 않는 한 가장 최근 .zip 파일을 다운로드합니다.
  5. 마지막으로 알려진 로컬 업로드 타임스탬프를 로밍 AppData 위치에 있는 가장 최근 .zip 파일보다 이전인 경우 가상 환경은 사용자 프로필의 로컬 임시 디렉터리에 .zip 파일을 추출합니다.
  6. .zip 파일이 성공적으로 추출되면 로밍 AppData 디렉터리의 로컬 캐시 이름이 바뀌고 새 데이터가 제자리에 이동됩니다.
  7. 이름이 바뀐 디렉터리가 삭제되고 애플리케이션이 가장 최근에 저장된 로밍 AppData 데이터와 함께 열립니다.

이 프로세스는 AppData\Roaming 위치에 있는 애플리케이션 설정의 성공적인 로밍을 완료합니다. 해결해야 하는 유일한 다른 조건은 패키지 복구 작업입니다. 프로세스는 다음과 같은 작업을 수행합니다.

  1. 복구하는 동안 사용자의 로밍 AppData 디렉터리에 대한 경로가 로컬이 아닌지 검색합니다.
  2. 로컬이 아닌 로밍 AppData 경로 대상을 매핑하여 예상 로밍 및 로컬 AppData 위치를 다시 만듭니다.
  3. 레지스트리에 저장된 타임스탬프를 삭제합니다(있는 경우).

이 프로세스는 AppData에 대한 로컬 및 네트워크 위치를 모두 다시 만들고 타임스탬프를 레지스트리 레코드를 제거합니다.

App-V 클라이언트 애플리케이션 수명 주기 관리

App-V 전체 인프라에서 애플리케이션이 시퀀싱된 후 App-V 관리 및 게시 서버를 통해 사용자 또는 컴퓨터에 관리되고 게시됩니다. 이 섹션에서는 일반적인 App-V 애플리케이션 수명 주기 작업(추가, 게시, 시작, 업그레이드 및 제거) 중에 발생하는 작업과 App-V 클라이언트 관점에서 변경 및 수정된 파일 및 레지스트리 위치에 대해 자세히 설명합니다. App-V 클라이언트 작업은 App-V 클라이언트를 실행하는 컴퓨터에서 PowerShell 명령으로 입력됩니다.

이 문서에서는 App-V 전체 인프라 솔루션에 중점을 둡니다. Microsoft Configuration Manager App-V 통합에 대한 자세한 내용은 Configuration Manager App-V 가상 애플리케이션 배포를 참조하세요.

App-V 애플리케이션 수명 주기 작업은 사용자 로그인(기본값), 컴퓨터 시작 또는 백그라운드 시간 초과 작업에서 트리거됩니다. 게시 서버, 새로 고침 간격, 패키지 스크립트 사용 등 App-V 클라이언트 작업에 대한 설정은 Windows PowerShell 명령을 사용하여 구성됩니다(클라이언트가 활성화된 후). App-V 클라이언트 구성 설정: Windows PowerShell 참조하세요.

게시 새로 고침

게시 새로 고침 프로세스는 App-V 클라이언트에서 수행되는 몇 가지 더 작은 작업으로 구성됩니다. App-V는 작업 예약 기술이 아닌 애플리케이션 가상화 기술이므로 Windows 작업 스케줄러는 사용자가 로그인할 때 컴퓨터가 켜지고 예약된 간격으로 프로세스를 사용하도록 설정하는 데 사용됩니다. 이전 섹션에 나열된 설정 중 클라이언트 구성은 올바른 설정을 사용하여 클라이언트를 대규모 컴퓨터 그룹에 배포할 때 기본 설정 방법입니다. 이러한 클라이언트 설정은 다음 Windows PowerShell cmdlet으로 구성할 수 있습니다.

  • Add-AppVPublishingServer 는 App-V 패키지를 제공하는 App-V 게시 서버를 사용하여 클라이언트를 구성합니다.
  • Set-AppVPublishingServer 는 App-V 게시 서버에 대한 현재 설정을 수정합니다.
  • Set-AppVClientConfiguration 은 App-V 클라이언트에 대한 현재 설정을 수정합니다.
  • Sync-AppVPublishingServer 는 App-V 게시 새로 고침 프로세스를 수동으로 시작합니다. 이 프로세스는 게시 서버를 구성하는 동안 만든 예약된 작업에서도 활용됩니다.

다음 섹션에서는 게시 새로 고침 프로세스 중에 발생하는 작업을 자세히 설명합니다.

App-V 패키지 추가

클라이언트에 App-V 패키지를 추가하는 것은 새로 고침 프로세스 게시의 첫 번째 단계입니다. 최종 결과는 Windows PowerShell Add-AppVClientPackage cmdlet과 동일합니다. 단, 게시 새로 고침 추가 프로세스가 구성된 게시 서버에 연결하고 클라이언트에 상위 수준의 애플리케이션 목록을 전달하여 단일 패키지 추가 작업을 수행하는 대신 더 자세한 정보를 가져옵니다.

그런 다음, 프로세스는 패키지 또는 연결 그룹 추가 또는 업데이트에 대한 클라이언트를 구성한 다음 appv 파일에 액세스합니다. 다음으로 appv 파일의 콘텐츠가 확장되어 적절한 위치의 로컬 운영 체제에 배치됩니다. 다음 단계는 패키지가 장애 스트리밍에 대해 구성되었다고 가정하는 프로세스의 자세한 워크플로입니다.

App-V 패키지를 추가하는 방법

  1. 게시 새로 고침 프로세스의 Windows PowerShell 또는 작업 순서 시작을 통해 수동으로 설치를 시작합니다.

    1. App-V 클라이언트는 HTTP 연결을 만들고 대상에 따라 애플리케이션 목록을 요청합니다. 게시 새로 고침 프로세스는 컴퓨터 또는 사용자를 대상으로 지정하는 것을 지원합니다.

    2. App-V 게시 서버는 시작 대상, 사용자 또는 컴퓨터의 ID를 사용하고 데이터베이스에 자격 있는 애플리케이션 목록을 쿼리합니다. 애플리케이션 목록은 클라이언트가 패키지별로 자세한 내용을 위해 서버에 더 많은 요청을 보내는 데 사용하는 XML 응답으로 제공됩니다.

  2. App-V 클라이언트의 게시 에이전트는 연결 그룹의 일부인 패키지 버전 업데이트를 처리할 수 없으므로 게시되지 않았거나 사용하지 않도록 설정된 모든 연결 그룹을 평가합니다.

  3. 추가 또는 업데이트 작업을 식별하여 패키지를 구성합니다.

    1. App-V 클라이언트는 Windows의 AppX API를 활용하고 게시 서버에서 appv 파일에 액세스합니다.

    2. 패키지 파일이 열리고 AppXManifest.xmlStreamMap.xml 파일이 패키지 저장소에 다운로드됩니다.

    3. StreamMap.xml 파일에 정의된 게시 블록 데이터를 완전히 스트리밍합니다. 게시 블록 데이터는 패키지 저장소\PkgGUID\VerGUID\Root에 저장됩니다.

      • 아이콘: 확장 지점의 대상입니다.
      • PE 헤더(이식 가능한 실행 파일 헤더): 직접 또는 파일 형식을 통해 액세스되는 디스크의 이미지 요구에 대한 기본 정보를 포함하는 확장 지점의 대상입니다.
      • 스크립트: 게시 프로세스 전체에서 사용할 스크립트 디렉터리를 다운로드합니다.
    4. 다음 하위 단계를 수행하여 패키지 저장소를 채웁합니다.

      1. 나열된 디렉터리에 대해 추출된 패키지를 나타내는 스파스 파일을 디스크에 만듭니다.

      2. 루트 아래에 최상위 파일 및 디렉터리를 스테이징합니다.

        디렉터리가 디스크에서 스파스로 나열되고 요청 시 스트리밍될 때 다른 모든 파일이 만들어집니다.

    5. 컴퓨터 카탈로그 항목을 만듭니다. 패키지 파일에서 Manifest.xml 만들고 파일을 DeploymentConfiguration.xml (패키지에 자리 표시자가 만들어지는 DeploymentConfiguration.xml 파일이 없는 경우).

    6. 레지스트리 HKLM\Software\Microsoft\AppV\Client\Packages\PkgGUID\Versions\VerGUID\Catalog 레지스트리에 패키지 저장소의 위치를 만듭니다.

    7. 패키지 저장소에서 %ProgramData%\Microsoft\AppV\Client\VReg\{VersionGUID}.dat Registry.dat파일을 만듭니다.

    8. HKLM\Microsoft\Software\AppV\MAV에서 App-V 커널 모드 드라이버에 패키지를 등록합니다.

    9. 패키지 추가 타이밍을 위해AppxManifest.xml 또는 DeploymentConfig.xml 파일에서 스크립팅을 호출합니다.

  4. 연결 그룹을 추가 및 사용하거나 사용하지 않도록 설정하여 구성합니다.

  5. 대상(사용자 또는 컴퓨터)에 게시되지 않은 개체를 제거합니다.

    참고

    이렇게 하면 패키지 삭제가 수행되지 않고 특정 대상(사용자 또는 컴퓨터)에 대한 통합 지점을 제거하고 사용자 카탈로그 파일(전역적으로 게시된 컴퓨터 카탈로그 파일)을 제거합니다.

  6. 클라이언트 구성에 따라 백그라운드 부하 탑재를 호출합니다.

  7. 컴퓨터 또는 사용자에 대한 게시 정보가 이미 있는 패키지는 즉시 복원됩니다.

    참고

    이 조건은 패키지의 백그라운드 추가와 함께 게시를 취소하지 않고 제거의 제품으로 발생합니다.

이 프로세스는 게시 새로 고침 프로세스에 대한 App-V 패키지 추가를 완료합니다. 다음 단계는 패키지를 특정 대상(컴퓨터 또는 사용자)에 게시하는 것입니다.

패키지는 파일 및 레지스트리 데이터를 추가합니다.

파일 및 레지스트리 데이터 패키지 추가

App-V 패키지 게시

게시 새로 고침 작업 중에 특정 게시 작업 인 Publish-AppVClientPackage는 사용자 카탈로그에 항목을 추가하고, 사용자에게 권한을 매핑하고, 로컬 저장소를 식별하고, 통합 단계를 완료하여 완료합니다.

App-V 패키지를 게시하는 방법

  1. 패키지 항목이 사용자 카탈로그에 추가됨

    1. 사용자 대상 패키지: UserDeploymentConfiguration.xmlUserManifest.xml 파일이 사용자 카탈로그의 컴퓨터에 배치됩니다.

    2. 컴퓨터 대상(전역) 패키지: UserDeploymentConfiguration.xml 컴퓨터 카탈로그에 배치됩니다.

  2. HKLM\Software\Microsoft\AppV\MAV에서 사용자에 대한 커널 모드 드라이버로 패키지를 등록합니다.

  3. 통합 작업을 수행합니다.

    1. 확장 지점을 만듭니다.

    2. 사용자의 레지스트리 및 로밍 프로필(바로 가기 백업)에 백업 정보를 저장합니다.

      참고

      이렇게 하면 패키지가 게시되지 않은 경우 확장 지점을 복원할 수 있습니다.

    3. 게시 타이밍을 대상으로 하는 스크립트를 실행합니다.

연결 그룹의 일부인 App-V 패키지를 게시하는 것은 위의 프로세스와 유사합니다. 연결 그룹의 경우 특정 카탈로그 정보를 저장하는 경로에는 PackageGroups가 카탈로그 디렉터리의 자식으로 포함됩니다. 자세한 내용은 이전 섹션의 컴퓨터 및 사용자 카탈로그 정보를 검토하세요.

package add file and registry data - global.

패키지 추가 파일 및 레지스트리 데이터-전역

애플리케이션 시작

게시 새로 고침 프로세스 후에는 사용자가 App-V 애플리케이션을 시작하고 다시 실행합니다. App-V 클라이언트는 게시 중에 만든 파일에 대한 사용자 카탈로그 경로를 확인합니다. 패키지를 시작할 수 있는 권한을 설정한 후 App-V 클라이언트는 가상 환경을 만들고, 필요한 모든 데이터를 스트리밍하기 시작하며, 가상 환경을 만드는 동안 적절한 매니페스트 및 배포 구성 파일을 적용합니다. 가상 환경이 만들어지고 특정 패키지 및 애플리케이션에 대해 구성되면 애플리케이션이 시작됩니다. 이는 많은 것처럼 보일 수 있지만 실행 중인 프로세스는 빠르며 네트워크 트래픽을 최소화하도록 최적화됩니다.

App-V 애플리케이션을 시작하는 방법

  1. 사용자가 바로 가기 또는 파일 형식 호출을 선택하여 애플리케이션을 시작합니다.

  2. App-V 클라이언트는 다음 파일에 대한 사용자 카탈로그의 존재를 확인합니다.

    • UserDeploymentConfiguration.xml
    • UserManifest.xml
  3. 파일이 있는 경우 애플리케이션은 해당 특정 사용자에 대한 권한을 부여하며 애플리케이션은 시작 프로세스를 시작합니다. 현재 네트워크 트래픽이 없습니다.

  4. 다음으로, App-V 클라이언트는 App-V 클라이언트 서비스에 등록된 패키지의 경로가 레지스트리에 있는지 확인합니다.

  5. 패키지 저장소의 경로를 찾으면 가상 환경이 만들어집니다.

    이 프로세스 실행이 첫 번째 시작인 경우 기본 기능 블록이 있는 경우 다운로드합니다.

  6. 다운로드한 후 App-V 클라이언트 서비스는 매니페스트 및 배포 구성 파일을 사용하여 가상 환경을 구성하고 모든 App-V 하위 시스템이 로드됩니다.

  7. 애플리케이션이 시작됩니다. 패키지 저장소(스파스 파일)에서 누락된 파일의 경우 App-V는 필요에 따라 오류를 스트리밍합니다.

    package add file and registry data - stream.

    파일 및 레지스트리 데이터 패키지 추가- 스트림

App-V 패키지 업그레이드

App-V의 패키지 업그레이드 프로세스의 현재 버전은 스토리지 최적화의 이전 버전과 다릅니다. App-V는 다른 사용자에게 자격이 있는 컴퓨터에서 동일한 패키지의 여러 버전을 지원합니다. 패키지 저장소 및 카탈로그가 새 리소스로 업데이트되기 때문에 언제든지 패키지 버전을 추가할 수 있습니다. 새 버전에서 업그레이드하는 동안 새 파일만 새 버전 저장소 위치에 추가되고 변경되지 않은 파일에 대한 하드 링크가 만들어집니다. 이러한 결과는 하나의 디스크 위치에만 파일을 표시한 다음 디스크에 파일 위치 항목이 있는 모든 폴더에 프로젝션하여 전체 스토리지를 줄입니다.

App-V 패키지를 업그레이드하는 방법

  1. App-V 클라이언트는 게시 새로 고침을 수행하고 최신 버전의 App-V 패키지를 검색합니다.

  2. 패키지 항목은 새 버전에 적합한 카탈로그에 추가됩니다.

    1. 사용자 대상 패키지: UserDeploymentConfiguration.xmlUserManifest.xml 파일은 appdata\roaming\Microsoft\AppV\Client\Catalog\Packages\PkgGUID\VerGUID의 사용자 카탈로그에 있는 컴퓨터에 배치됩니다.

    2. 컴퓨터 대상(전역) 패키지: UserDeploymentConfiguration.xml%programdata%\Microsoft\AppV\Client\Catalog\Packages\PkgGUID\VerGUID의 컴퓨터 카탈로그에 배치됩니다.

  3. HKLM\Software\Microsoft\AppV\MAV에서 사용자에 대한 커널 모드 드라이버로 패키지를 등록합니다.

  4. 통합 작업을 수행합니다.

    1. 매니페스트 및 동적 구성 파일에서 EP(확장 지점)를 통합합니다.

    2. 파일 기반 EP 데이터는 패키지 저장소의 접합 지점을 활용하여 AppData 폴더에 저장됩니다.

    3. 새 버전을 사용할 수 있게 되면 버전 1 EP가 이미 존재합니다.

    4. 확장 지점은 최신 또는 업데이트된 확장 지점에 대한 컴퓨터 또는 사용자 카탈로그의 버전 2 위치로 전환됩니다.

  5. 게시 타이밍을 대상으로 하는 스크립트를 실행합니다.

  6. 필요에 따라 Side-by-Side 어셈블리를 설치합니다.

사용 중인 App-V 패키지 업그레이드

현재 사용 중인 패키지를 업그레이드하려고 하면 업그레이드 작업이 보류 중인 상태로 배치됩니다. 업그레이드는 다음 규칙에 따라 나중에 실행됩니다.

작업 유형 적용 가능한 규칙
사용자에게 패키지 게시와 같은 사용자 기반 작업 보류 중인 작업은 사용자가 로그아웃한 후 다시 로그인한 후 수행됩니다.
전역적으로 연결 그룹 사용과 같은 전역 기반 작업 보류 중인 작업은 컴퓨터가 종료된 후 다시 시작될 때 수행됩니다.

작업이 보류 중인 상태로 배치되면 App-V 클라이언트는 다음과 같이 보류 중인 작업에 대한 레지스트리 키도 생성합니다.

사용자 기반 또는 전역 기반 작업 레지스트리 키가 생성되는 위치
사용자 기반 작업 HKEY_CURRENT_USER\Software\Microsoft\AppV\Client\PendingTasks
전역 기반 작업 HKEY_LOCAL_MACHINE\Software\Microsoft\AppV\Client\PendingTasks

사용자가 최신 버전의 패키지를 사용하려면 먼저 다음 작업을 완료해야 합니다.

작업 세부 정보
컴퓨터에 패키지 추가 이 작업은 컴퓨터별로 지정되며 언제든지 App-V 패키지를 추가하는 방법의 단계를 완료하여 수행할 수 있습니다.
패키지 게시 단계는 위의 패키지 게시 섹션을 참조하세요. 이 프로세스를 수행하려면 시스템의 확장 지점을 업데이트해야 합니다. 애플리케이션이 사용 중인 동안에는 이 작업을 완료할 수 없습니다.

다음 예제 시나리오를 패키지 업데이트 가이드로 사용합니다.

시나리오 요구 사항
업그레이드하려고 할 때 App-V 패키지가 사용되지 않음 가상 애플리케이션, COM 서버 또는 셸 확장과 같은 패키지 구성 요소를 사용할 수 없습니다.

관리자는 최신 버전의 패키지를 게시하고 다음에 패키지 내의 구성 요소 또는 애플리케이션이 시작될 때 업그레이드가 작동합니다. 패키지의 새 버전이 스트리밍되고 실행됩니다.
관리자가 최신 버전의 패키지를 게시할 때 App-V 패키지가 사용 중임 App-V 클라이언트는 작업을 "보류 중"으로 설정하여 큐에 대기 중이며 패키지가 사용되지 않을 때 나중에 수행됩니다.

패키지 애플리케이션이 사용 중인 경우 사용자는 가상 애플리케이션을 종료한 후 업그레이드가 발생할 수 있습니다.

패키지에 Windows Explorer 의해 영구적으로 로드되는 셸 확장이 있는 경우 사용자는 로그인할 수 없습니다. 사용자는 로그오프한 다음 다시 로그인하여 App-V 패키지 업그레이드를 시작해야 합니다.

전역 및 사용자 게시

App-V 패키지는 두 가지 방법 중 하나로 게시할 수 있습니다. 사용자로서, 특정 사용자 또는 사용자 그룹에 App-V 패키지를 부여하거나 전역으로, 컴퓨터의 모든 사용자에 대해 App-V 패키지를 전체 머신에 부여합니다. 패키지 업그레이드가 보류되고 App-V 패키지가 사용되지 않으면 두 가지 유형의 게시를 고려합니다.

  • 전역 게시는 애플리케이션이 컴퓨터에 게시되는 경우입니다. 해당 컴퓨터의 모든 사용자가 사용할 수 있습니다. 업그레이드는 App-V 클라이언트 서비스가 시작될 때 발생하며 이는 머신을 효과적으로 다시 시작한다는 것을 의미합니다.
  • 사용자 게시는 애플리케이션이 사용자에게 게시될 때입니다. 컴퓨터에 여러 사용자가 있는 경우 애플리케이션을 사용자의 하위 집합에 게시할 수 있습니다. 업그레이드는 사용자가 로그인하거나 다시 게시될 때 발생합니다(주기적으로 정책 새로 고침 및 평가 ConfigMgr 또는 App-V 정기 게시/새로 고침 또는 Windows PowerShell 명령을 통해 명시적으로).

App-V 패키지 제거

전체 인프라에서 App-V 애플리케이션을 제거하는 것은 게시되지 않은 작업이며 패키지 제거를 수행하지 않습니다. 이 프로세스는 위의 게시 프로세스와 동일하지만 제거 프로세스를 추가하는 대신 App-V 패키지에 대해 변경된 내용을 반전합니다.

App-V 패키지 복구

수리 작업은 쉽게 수행할 수 있지만 컴퓨터의 많은 위치에 영향을 줄 수 있습니다. 이전에 언급한 COW(Write에 복사) 위치가 제거되고 확장 지점이 통합된 다음 다시 통합됩니다. 복구하기 전에 레지스트리에 COW 데이터 배치 위치가 등록된 위치를 검토하세요. 복구 작업을 수행하려면 App-V 클라이언트 콘솔 또는 Repair-AppVClientPackage PowerShell cmdlet을 통해 복구 작업을 시작하기만 하면 됩니다. 그런 다음 작업이 자동으로 완료됩니다.

App-V 패키지 통합

App-V 클라이언트 및 패키지 아키텍처는 패키지를 추가하고 게시하는 동안 로컬 운영 체제와 특정 통합을 제공합니다. 세 개의 파일은 App-V 패키지에 대한 통합 또는 확장 지점을 정의합니다.

  • AppXManifest.xml 패키지 저장소 및 사용자 프로필에 저장된 대체 복사본을 사용하여 패키지 내부에 저장됩니다. 시퀀싱 프로세스 중에 만든 옵션을 포함합니다.
  • DeploymentConfig.xml 컴퓨터 및 사용자 기반 통합 확장 지점의 구성 정보를 제공합니다.
  • UserConfig.xml 사용자 기반 구성만 제공하고 사용자 기반 확장 지점만 대상으로 하는 Deploymentconfig.xml 파일의 하위 집합입니다.

통합 규칙

App-V 애플리케이션이 App-V 클라이언트를 사용하여 컴퓨터에 게시되면 다음 목록에 설명된 대로 몇 가지 특정 작업이 수행됩니다.

  • 전역 게시: 바로 가기는 모든 사용자 프로필 위치에 저장되고 다른 확장 지점은 HKLM 하이브의 레지스트리에 저장됩니다.

  • 사용자 게시: 바로 가기는 현재 사용자 계정 프로필에 저장되고 다른 확장 지점은 HKCU 하이브의 레지스트리에 저장됩니다.

  • 백업 및 복원: 게시하는 동안 기존 네이티브 애플리케이션 데이터 및 레지스트리(예: FTA 등록)가 백업됩니다.

    1. App-V 패키지는 소유권이 최신 게시된 App-V 애플리케이션에 전달되는 마지막 통합 패키지를 기반으로 소유권을 부여합니다.
    2. 소유권은 소유하는 App-V 패키지가 게시되지 않은 경우 한 App-V 패키지에서 다른 패키지로 이전됩니다. 이 전송은 데이터 또는 레지스트리의 복원을 시작하지 않습니다.
    3. 마지막 패키지가 게시 취소되거나 확장별 지점별로 제거될 때 백업된 데이터를 복원합니다.

확장 지점

App-V 게시 파일(매니페스트 및 동적 구성)은 애플리케이션을 로컬 운영 체제와 통합하기 위한 몇 가지 확장 지점을 제공합니다. 이러한 확장 지점은 바로 가기 배치, 파일 형식 연결 만들기 및 구성 요소 등록과 같은 일반적인 애플리케이션 설치 작업을 수행합니다. 기존 애플리케이션과 동일한 방식으로 설치되지 않은 가상화된 애플리케이션이므로 몇 가지 차이점이 있습니다. 다음은 이 섹션에서 다루는 확장 지점 목록입니다.

  • 바로 가기
  • 파일 형식 연결
  • 셸 확장
  • Com
  • 소프트웨어 클라이언트
  • 애플리케이션 기능
  • URL 프로토콜 처리기
  • AppPath
  • 가상 애플리케이션

바로 가기

바로 가기는 OS와의 통합의 기본 요소 중 하나이며 App-V 애플리케이션의 직접 사용자 시작을 위한 인터페이스입니다. App-V 애플리케이션을 게시 및 게시 취소하는 동안

패키지 매니페스트 및 동적 구성 XML 파일에서 특정 애플리케이션 실행 파일의 경로는 다음 예제와 같이 섹션에서 찾을 수 있습니다.

<Extension Category="AppV.Shortcut">
          <Shortcut>
            <File>[{Common Desktop}]\Adobe Reader.lnk</File>
            <Target>[{AppVPackageRoot}]\Reader\AcroRd32.exe</Target>
            <Icon>[{Windows}]\Installer\{AC76BA86-7AD7-1033-7B44-A94000000001}\SC_Reader.ico</Icon>
            <Arguments />
            <WorkingDirectory />
            <ShowCommand>1</ShowCommand>
            <ApplicationId>[{AppVPackageRoot}]\Reader\AcroRd32.exe</ApplicationId>
          </Shortcut>
        </Extension>

앞에서 설명한 것처럼 App-V 바로 가기는 기본적으로 새로 고침 작업에 따라 사용자의 프로필에 배치됩니다. 전역 새로 고침은 모든 사용자 프로필에 바로 가기를 배치하고 사용자 새로 고침은 특정 사용자의 프로필에 저장합니다. 실제 실행 파일은 패키지 저장소에 저장됩니다. ICO 파일의 위치는 App-V 패키지의 토큰화된 위치입니다.

파일 형식 연결

App-V 클라이언트가 게시하는 동안 로컬 운영 체제 파일 형식 연결을 관리하므로 사용자는 파일 형식 호출을 사용하거나 등록된 확장명(.docx)이 있는 파일을 열어 App-V 애플리케이션을 시작할 수 있습니다. 파일 형식 연결은 다음 예제와 같이 매니페스트 및 동적 구성 파일에 있습니다.

<Extension Category="AppV.FileTypeAssociation">
          <FileTypeAssociation>
            <FileExtension MimeAssociation="true">
              <Name>.xdp</Name>
              <ProgId>AcroExch.XDPDoc</ProgId>
              <ContentType>application/vnd.adobe.xdp+xml</ContentType>
            </FileExtension>
            <ProgId>
              <Name>AcroExch.XDPDoc</Name>
              <Description>Adobe Acrobat XML Data Package File</Description>
              <EditFlags>65536</EditFlags>
              <DefaultIcon>[{Windows}]\Installer\{AC76BA86-7AD7-1033-7B44-A94000000001}\XDPFile_8.ico</DefaultIcon>
              <ShellCommands>
                <DefaultCommand>Read</DefaultCommand>
                <ShellCommand>
                  <ApplicationId>[{AppVPackageRoot}]\Reader\AcroRd32.exe</ApplicationId>
                  <Name>Open</Name>
                  <CommandLine>"[{AppVPackageRoot}]\Reader\AcroRd32.exe" "%1"</CommandLine>
                </ShellCommand>
                <ShellCommand>
                  <ApplicationId>[{AppVPackageRoot}]\Reader\AcroRd32.exe</ApplicationId>
                  <Name>Printto</Name>
                  <CommandLine>"[{AppVPackageRoot}]\Reader\AcroRd32.exe"  /t "%1" "%2" "%3" "%4"</CommandLine>
                </ShellCommand>
                <ShellCommand>
                  <ApplicationId>[{AppVPackageRoot}]\Reader\AcroRd32.exe</ApplicationId>
                  <Name>Read</Name>
                  <FriendlyName>Open with Adobe Reader</FriendlyName>
                  <CommandLine>"[{AppVPackageRoot}]\Reader\AcroRd32.exe" "%1"</CommandLine>
                </ShellCommand>
              </ShellCommands>
            </ProgId>
          </FileTypeAssociation>
        </Extension>

참고

이 예에는 다음이 해당됩니다.

  • <Name>.xdp</Name> 는 확장입니다.
  • <Name>AcroExch.XDPDoc</Name> 는 ProgId 값(인접한 ProgId를 가리키는 값)입니다.
  • <CommandLine>"[{AppVPackageRoot}]\Reader\AcroRd32.exe" "%1"</CommandLine> 는 애플리케이션 실행 파일을 가리키는 명령줄입니다.

셸 확장

셸 확장은 시퀀싱 프로세스 중에 패키지에 자동으로 포함됩니다. 패키지가 전역적으로 게시되면 셸 확장은 애플리케이션이 로컬로 설치된 것처럼 사용자에게 동일한 기능을 제공합니다. 애플리케이션은 셸 확장 기능을 사용하도록 설정하기 위해 클라이언트에 대한 추가 설정 또는 구성이 필요하지 않습니다.

셸 확장 사용에 대한 요구 사항

  • 포함된 셸 확장을 포함하는 패키지는 전역적으로 게시해야 합니다.
  • 애플리케이션, Sequencer 및 App-V 클라이언트의 "비트"가 일치해야 합니다. 그렇지 않으면 셸 확장이 작동하지 않습니다. 다음 예제 구성은 일치하는 요구 사항을 충족합니다.
    • 애플리케이션의 버전은 64비트입니다.
    • Sequencer가 64비트 컴퓨터에서 실행 중입니다.
    • 패키지는 64비트 App-V 클라이언트 컴퓨터에 배달되고 있습니다.

다음 표에는 지원되는 셸 확장이 표시됩니다.

처리기 설명
상황에 맞는 메뉴 처리기 상황에 맞는 메뉴에 메뉴 항목을 추가합니다. 상황에 맞는 메뉴가 표시되기 전에 호출됩니다.
끌어서 놓기 처리기 마우스 오른쪽 단추로 끌어서 놓기 시 작업을 제어하고 표시되는 상황에 맞는 메뉴를 수정합니다.
대상 처리기 삭제 데이터 개체가 끌어서 놓기 대상(예: 파일)에 대해 끌어서 놓은 후 동작을 제어합니다.
데이터 개체 처리기 파일이 클립보드에 복사되거나 놓기 대상 위로 끌어서 놓은 후 작업을 제어합니다. 드롭 대상에 더 많은 클립보드 형식을 제공할 수 있습니다.
속성 시트 처리기 개체의 속성 시트 대화 상자에 페이지를 바꾸거나 추가합니다.
Infotip 처리기 항목에 대한 플래그 및 정보 설명 정보를 검색하고 마우스로 가리키면 팝업 도구 설명 안에 표시할 수 있습니다.
열 처리기 Windows Explorer 세부 정보 보기에서 사용자 지정 열을 만들고 표시할 수 있습니다. 정렬 및 그룹화 확장에 사용할 수 있습니다.
미리 보기 처리기 파일의 미리 보기를 Windows Explorer 미리 보기 창에 표시할 수 있습니다.

Com

App-V 클라이언트는 COM 통합 및 가상화를 지원하는 애플리케이션 게시를 지원합니다. COM 통합을 사용하면 App-V 클라이언트가 로컬 운영 체제 및 개체의 가상화에 COM 개체를 등록할 수 있습니다. 이 문서의 목적을 위해 COM 개체를 통합하려면 자세한 내용이 필요합니다.

App-V는 두 가지 프로세스 유형인 Out-of-process 및 In-process를 사용하여 패키지에서 로컬 운영 체제로 COM 개체 등록을 지원합니다. COM 개체 등록은 Off, Isolated 및 Integrated를 포함하는 특정 App-V 패키지에 대해 하나 또는 여러 작업 모드의 조합으로 수행됩니다. 통합 모드는 Out-of-process 또는 In-process 형식에 대해 구성됩니다. COM 모드 및 형식의 구성은 동적 구성 파일(deploymentconfig.xml 또는 userconfig.xml)을 사용하여 수행됩니다.

App-V 통합에 대한 자세한 내용은 Microsoft Application Virtualization 5.0 통합을 참조하세요.

소프트웨어 클라이언트 및 애플리케이션 기능

App-V는 특정 소프트웨어 클라이언트 및 애플리케이션 기능 확장 지점을 지원하여 가상화된 애플리케이션을 운영 체제의 소프트웨어 클라이언트에 등록합니다. 이 특정 지원은 사용자가 이메일, 인스턴트 메시징 및 미디어 플레이어 사용과 같은 작업에 대한 기본 프로그램을 선택할 수 있습니다. 이 작업은 프로그램 액세스컴퓨터 기본값 설정을 사용하여 제어판에서 수행되며 매니페스트 또는 동적 구성 파일에서 시퀀싱하는 동안 구성됩니다. 애플리케이션 기능은 App-V 애플리케이션이 전역적으로 게시된 경우에만 지원됩니다.

다음 예제에서는 App-V 기반 메일 클라이언트의 소프트웨어 클라이언트 등록을 보여 줍니다.

    <SoftwareClients Enabled="true">
      <ClientConfiguration EmailEnabled="true" />
      <Extensions>
        <Extension Category="AppV.SoftwareClient">
          <SoftwareClients>
            <EMail MakeDefault="true">
              <Name>Mozilla Thunderbird</Name>
              <Description>Mozilla Thunderbird</Description>
              <DefaultIcon>[{ProgramFilesX86}]\Mozilla Thunderbird\thunderbird.exe,0</DefaultIcon>
              <InstallationInformation>
                <RegistrationCommands>
                  <Reinstall>"[{ProgramFilesX86}]\Mozilla Thunderbird\uninstall\helper.exe" /SetAsDefaultAppGlobal</Reinstall>
                  <HideIcons>"[{ProgramFilesX86}]\Mozilla Thunderbird\uninstall\helper.exe" /HideShortcuts</HideIcons>
                  <ShowIcons>"[{ProgramFilesX86}]\Mozilla Thunderbird\uninstall\helper.exe" /ShowShortcuts</ShowIcons>
                </RegistrationCommands>
                <IconsVisible>1</IconsVisible>
                <OEMSettings />
              </InstallationInformation>
              <ShellCommands>
                <ApplicationId>[{ProgramFilesX86}]\Mozilla Thunderbird\thunderbird.exe</ApplicationId>
                <Open>"[{ProgramFilesX86}]\Mozilla Thunderbird\thunderbird.exe" -mail</Open>
              </ShellCommands>
              <MAPILibrary>[{ProgramFilesX86}]\Mozilla Thunderbird\mozMapi32_InUse.dll</MAPILibrary>
              <MailToProtocol>
                <Description>Thunderbird URL</Description>
                <EditFlags>2</EditFlags>
                <DefaultIcon>[{ProgramFilesX86}]\Mozilla Thunderbird\thunderbird.exe,0</DefaultIcon>
                <ShellCommands>
                  <ApplicationId>[{ProgramFilesX86}]\Mozilla Thunderbird\thunderbird.exe</ApplicationId>
                  <Open>"[{ProgramFilesX86}]\Mozilla Thunderbird\thunderbird.exe" -osint -compose "%1"</Open>
                </ShellCommands>
              </MailToProtocol>
            </EMail>
          </SoftwareClients>
        </Extension>
      </Extensions>
    </SoftwareClients>

참고

이 예에는 다음이 해당됩니다.

  • <ClientConfiguration EmailEnabled="true" />는 Email 클라이언트를 통합하기 위한 전체 소프트웨어 클라이언트 설정입니다.
  • <EMail MakeDefault="true">는 특정 Email 클라이언트를 기본 Email 클라이언트로 설정하는 플래그입니다.
  • <MAPILibrary>[{ProgramFilesX86}]\Mozilla Thunderbird\mozMapi32_InUse.dll</MAPILibrary> 는 MAPI dll 등록입니다.

URL 프로토콜 처리기

가상 애플리케이션이 항상 파일 형식 호출을 특별히 활용하는 것은 아닙니다. 예를 들어 편지 포함을 지원하는 애플리케이션: 문서 또는 웹 페이지 내의 링크에서 사용자는 등록된 메일 클라이언트에 액세스할 것으로 예상되는 링크를 선택합니다. App-V는 로컬 운영 체제에 패키지별로 등록할 수 있는 URL 프로토콜 처리기를 지원합니다. 시퀀싱하는 동안 URL 프로토콜 처리기가 패키지에 자동으로 추가됩니다.

특정 URL 프로토콜 처리기를 등록할 수 있는 애플리케이션이 두 개 이상 있는 경우 동적 구성 파일을 사용하여 동작을 수정하고 기본 애플리케이션이 시작되지 않아야 하는 애플리케이션에 대해 이 기능을 표시하지 않거나 사용하지 않도록 설정할 수 있습니다.

AppPath

AppPath 확장 지점은 운영 체제에서 직접 App-V 애플리케이션 호출을 지원합니다. 관리자는 운영 체제에 따라 실행 또는 시작 화면에서 실행 파일에 대한 특정 경로를 호출하지 않고 운영 체제 명령 또는 스크립트에서 App-V 애플리케이션에 대한 액세스를 제공할 수 있습니다. 따라서 게시하는 동안 수행되므로 모든 시스템에서 시스템 경로 환경 변수를 수정하지 않습니다.

AppPath 확장 지점은 매니페스트 또는 동적 구성 파일에서 구성되며 사용자에 대해 게시하는 동안 로컬 컴퓨터의 레지스트리에 저장됩니다. AppPath 검토에 대한 자세한 내용은 앱 경로 - App-V 5.0의 가상 애플리케이션 확장입니다.

가상 애플리케이션

이 하위 시스템은 다른 App-V 구성 요소에서 사용하는 시퀀싱 중에 캡처된 애플리케이션 목록을 제공합니다. 동적 구성 파일을 사용하여 특정 애플리케이션에 속하는 확장 지점의 통합을 사용하지 않도록 설정할 수 있습니다. 예를 들어 패키지에 두 개의 애플리케이션이 포함된 경우 한 애플리케이션에 속하는 모든 확장 지점을 사용하지 않도록 설정하여 다른 애플리케이션에 대한 확장 지점 통합만 허용할 수 있습니다.

확장 지점 규칙

이전에 설명한 확장 지점은 패키지가 게시된 방법에 따라 운영 체제에 통합됩니다. 전역 게시는 사용자 게시가 사용자 위치에 확장 지점을 배치하는 공용 컴퓨터 위치에 확장 지점을 배치합니다. 예를 들어 바탕 화면에서 만들어지고 전역적으로 게시된 바로 가기는 바로 가기(%Public%\Desktop) 및 레지스트리 데이터(HKLM\Software\Classes)에 대한 파일 데이터를 생성합니다. 동일한 바로 가기에는 파일 데이터(%UserProfile%\Desktop) 및 레지스트리 데이터(HKCU\Software\Classs)가 있습니다.

확장 지점이 모두 동일한 방식으로 게시되는 것은 아니며, 일부 확장 지점에는 전역 게시가 필요하고 다른 확장 지점은 전달되는 특정 운영 체제 및 아키텍처에 대한 시퀀싱이 필요합니다. 다음은 이러한 두 가지 주요 규칙을 설명하는 표입니다.

가상 확장 대상 OS 시퀀싱 필요 전역 게시 필요
바로 가기
파일 형식 연결
URL 프로토콜 X
AppPaths X
COM 모드
소프트웨어 클라이언트 X
애플리케이션 기능 X X
상황에 맞는 메뉴 처리기 X X
끌어서 놓기 처리기 X
데이터 개체 처리기 X
속성 시트 처리기 X
Infotip 처리기 X
열 처리기 X
셸 확장 X
Browser 도우미 개체 X X
활성 X 개체 X X

동적 구성 처리

단일 컴퓨터 또는 사용자에게 App-V 패키지를 배포하는 것은 간단합니다. 그러나 조직에서 비즈니스 라인과 지리적, 정치적 경계에 걸쳐 App-V 애플리케이션을 배포하면 모든 애플리케이션을 동일한 설정으로 시퀀스하는 것이 불가능해집니다. App-V는 매니페스트 파일에서 시퀀싱하는 동안 특정 설정 및 구성을 캡처하는 동시에 동적 구성 파일 수정을 지원하여 이 문제를 해결하도록 설계되었습니다.

App-V 동적 구성을 사용하면 컴퓨터 또는 사용자 수준에서 패키지 정책을 지정할 수 있습니다. 시퀀싱 엔지니어는 동적 구성 파일을 사용하여 개별 사용자 또는 컴퓨터 그룹의 요구 사항을 해결하기 위해 패키지 사후 시퀀싱의 구성을 수정할 수 있습니다. 경우에 따라 App-V 환경 내에서 적절한 기능을 제공하도록 애플리케이션을 수정해야 할 수 있습니다. 예를 들어 가상화된 애플리케이션이 다른 애플리케이션에서 해당 확장을 덮어쓰지 못하도록 mailto 확장을 사용하지 않도록 설정하는 것과 같이 애플리케이션을 실행하는 동안 지정된 시간에 특정 작업을 수행할 수 있도록 _*config.xml 파일을 수정해야 할 수 있습니다.

App-V 패키지는 App-V 패키지 파일 내에 매니페스트 파일을 포함하며, 이는 시퀀싱 작업을 나타내며 동적 구성 파일이 특정 패키지에 할당되지 않는 한 선택 정책입니다. 시퀀싱 후 동적 구성 파일을 수정하여 애플리케이션을 다른 데스크톱 또는 확장 지점이 다른 사용자에게 게시할 수 있도록 할 수 있습니다. 두 동적 구성 파일은 DDC(동적 배포 구성) 및 DUC(동적 사용자 구성) 파일입니다. 이 섹션에서는 매니페스트와 동적 구성 파일의 조합에 중점을 둡니다.

동적 구성 파일의 예

다음 예제에서는 게시 후 및 정상 작업 중에 매니페스트, 배포 구성 및 사용자 구성 파일의 조합을 보여줍니다. 이러한 예제는 각 파일의 약어 예제입니다. 각 파일에서 사용할 수 있는 특정 범주에 대한 완전한 설명이 아니라 파일의 조합만 표시하는 것이 목적입니다. 자세한 내용은 App-V 시퀀싱 가이드를 다운로드하세요.

매니페스트

<appv:Extension Category="AppV.Shortcut">
     <appv:Shortcut>
          <appv:File>[{Common Programs}]\7-Zip\7-Zip File Manager.lnk</appv:File>
          <appv:Target>[{AppVPackageRoot}]\7zFM.exe</appv:Target>
          <appv:Icon>[{AppVPackageRoot}]\7zFM exe.O.ico</appv:Icon>
     </appv:Shortcut>
</appv:Extension>

배포 구성

<MachineConfiguration>
     <Subsystems>
          <Registry>
               <Include>
                    <Key Path= "\REGISTRY\Machine\Software\7zip">
                    <Value Type="REG_SZ" Name="Config" Data="1234"/>
                    </Key>
               </Include>
          </Registry>
     </Subsystems>

사용자 구성

<UserConfiguration>
     <Subsystems>
<appv:ExtensionCategory="AppV.Shortcut">
     <appv:Shortcut>
          <appv:File>[{Desktop}]\7-Zip\7-Zip File Manager.lnk</appv:File>
          <appv:Target>[{AppVPackageRoot}]\7zFM.exe</appv:Target>
          <appv:Icon>[{AppVPackageRoot}]\7zFM exe.O.ico</appv:Icon>
     </appv:Shortcut>
</appv:Extension>
     </Subsystems>
<UserConfiguration>
     <Subsystems>
<appv:Extension Category="AppV.Shortcut">
     <appv:Shortcut>
          <appv:Fìle>[{Desktop}]\7-Zip\7-Zip File Manager.lnk</appv:File>
          <appv:Target>[{AppVPackageRoot}]\7zFM.exe</appv:Target>
          <appv:Icon>[{AppVPackageRoot}]\7zFM.exe.O.ico</appv:Icon>
     </appv:Shortcut>
     <appv:Shortcut>
          <appv:File>[{Common Programs}]\7-Zip\7-Zip File Manager.Ink</appv:File>
          <appv:Target>[{AppVPackageRoot}]\7zFM.exe</appv:Target>
          <appv:Icon>[{AppVPackageRoot)]\7zFM.exe.O.ico</appv: Icon>
     </appv:Shortcut>
</appv:Extension>
     </Subsystems>
<MachineConfiguration>
     <Subsystems>
          <Registry>
               <Include>
                    <Key Path="\REGISTRY\Machine\Software\7zip">
                    <Value Type=”REG_SZ" Name="Config" Data="1234"/>
               </Include>
          </Registry>
     </Subsystems>

병렬 어셈블리

App-V는 가상 애플리케이션 게시 중에 클라이언트에서 시퀀싱 및 배포하는 동안 병렬 어셈블리의 자동 패키징을 지원합니다. 또한 App-V는 시퀀싱 머신에 없는 어셈블리를 시퀀싱하는 동안 병렬 어셈블리 캡처를 지원합니다. Visual C++(버전 8 이상) 또는 MSXML 런타임으로 구성된 어셈블리의 경우 시퀀서는 모니터링 중에 설치되지 않은 경우에도 이러한 종속성을 자동으로 검색하고 캡처합니다.

병렬 어셈블리 기능은 App-V 시퀀서가 시퀀싱 워크스테이션에 이미 있는 어셈블리를 캡처하지 않은 이전 버전의 App-V의 제한을 제거하고 어셈블리를 민영화하여 패키지당 비트 버전으로 제한했습니다. 이 동작으로 인해 App-V 애플리케이션이 클라이언트에 배포되어 필요한 병렬 어셈블리가 누락되어 애플리케이션 시작 실패가 발생했습니다. 이 오류로 인해 패키징 프로세스는 패키지에 필요한 모든 어셈블리가 사용자의 클라이언트 운영 체제에 로컬로 설치되었는지 문서화해야 했습니다. 이 작업은 어셈블리 수와 필요한 종속성에 대한 애플리케이션 설명서가 부족하여 관리 및 구현 과제였습니다.

App-V의 병렬 어셈블리 지원에는 다음과 같은 기능이 있습니다.

  • 시퀀싱 워크스테이션에 어셈블리가 이미 설치되어 있는지 여부에 관계없이 시퀀싱하는 동안 병렬 어셈블리를 자동으로 캡처합니다.
  • App-V 클라이언트는 아직 설치되지 않은 경우 게시 시 필요한 병렬 어셈블리를 클라이언트 컴퓨터에 자동으로 설치합니다.
  • Sequencer는 Sequencer 보고 메커니즘에서 VC 런타임 종속성을 보고합니다.
  • Sequencer를 사용하면 Sequencer에 이미 설치된 어셈블리를 패키지하지 않도록 선택하여 어셈블리가 이전에 대상 컴퓨터에 설치된 시나리오를 지원할 수 있습니다.

병렬 어셈블리 자동 게시

병렬 어셈블리가 있는 App-V 패키지를 게시하는 동안 App-V 클라이언트는 머신에 어셈블리가 있는지 검사. 어셈블리를 검색하지 않으면 클라이언트는 어셈블리를 컴퓨터에 배포합니다. 연결 그룹에 어셈블리 설치에 대한 정보가 포함되지 않으므로 연결 그룹의 일부인 패키지는 기본 패키지의 병렬 어셈블리 설치를 사용합니다.

참고

어셈블리를 사용하여 패키지를 게시 취소하거나 제거해도 해당 패키지의 어셈블리는 제거되지 않습니다.

클라이언트 로깅

App-V 클라이언트는 정보를 표준 ETW 형식으로 Windows 이벤트 로그에 기록합니다. 특정 App-V 이벤트는 애플리케이션 및 서비스 로그\Microsoft\AppV\Client 아래의 이벤트 뷰어에서 찾을 수 있습니다.

기록된 이벤트의 세 가지 특정 범주가 있습니다.

  • 관리 App-V 클라이언트에 적용된 구성에 대한 이벤트를 기록하며 기본 경고 및 오류도 포함합니다.
  • 운영 은 개별 구성 요소의 일반적인 App-V 실행 및 사용을 기록하여 App-V 클라이언트의 완료된 App-V 작업의 감사 로그를 만듭니다.
  • 가상 애플리케이션 로그 가상 애플리케이션 시작 및 가상화 하위 시스템의 사용.