응용 프로그램 게시 및 클라이언트 상호 작용

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

추가 참조 정보는 Microsoft Application Virtualization(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 템플릿 파일입니다.

시퀀싱에 대한 자세한 내용은 Application Virtualization 5.0 시퀀싱 가이드를 참조하세요.

appv 파일에 무엇이 있나요?

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

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

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

이름 유형 설명

루트

파일 폴더

시퀀싱 중에 캡처되는 가상화된 애플리케이션의 파일 시스템을 포함하는 디렉터리입니다.

[Content_Types].xml

XML 파일

appv 파일(e.g. 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이지만 로컬 레지스트리(PackageInstallationRoot키 아래 HKLM\Software\Microsoft\AppV\Client\Streaming 값)를 수정하는 PowerShell 명령을 사용하여 Set-AppVClientConfiguration 설치 중 또는 설치 후에 구성할 수 있습니다. 패키지 저장소는 클라이언트 운영 체제의 로컬 경로에 있어야 합니다. 개별 패키지는 패키지 GUID 및 버전 GUID에 대해 명명된 하위 디렉터리의 패키지 저장소에 저장됩니다.

특정 애플리케이션에 대한 경로의 예:

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

설치하는 동안 패키지 저장소의 기본 위치를 변경하려면 App-V 클라이언트 배포 방법을 참조하세요.

공유 콘텐츠 저장소

App-V 클라이언트가 공유 콘텐츠 저장소 모드로 구성된 경우 스트림 오류가 발생할 때 데이터가 디스크에 기록되지 않습니다. 즉, 패키지에 최소한의 로컬 디스크 공간(데이터 게시)이 필요합니다. 더 적은 디스크 공간의 사용은 로컬 스토리지를 제한할 수 있는 VDI 환경에서 매우 바람직하며, 고성능 네트워크 위치(예: SAN)에서 애플리케이션을 스트리밍하는 것이 좋습니다. 공유 콘텐츠 저장소 모드에 대한 자세한 내용은 을 참조하세요 https://go.microsoft.com/fwlink/p/?LinkId=392750.

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

패키지 카탈로그

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

  • 카탈로그(사용자 및 컴퓨터).

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

컴퓨터 카탈로그

설명

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

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

컴퓨터(전역 또는 비 전역)의 사용자가 패키지를 사용할 수 있는 경우 매니페스트는 컴퓨터 카탈로그에 저장됩니다. 패키지가 전역적으로 게시되면 컴퓨터 카탈로그에 저장된 동적 구성 파일이 있습니다. 따라서 패키지가 전역인지 여부를 결정하는 것은 컴퓨터 카탈로그에 정책 파일(UserDeploymentConfiguration 파일)이 있는지 여부에 따라 정의됩니다.

기본 스토리지 위치

%programdata%\Microsoft\AppV\Client\Catalog</code>

이 위치는 패키지 저장소 위치와 다릅니다. 패키지 저장소는 패키지 파일의 골든 또는 기본 복사본입니다.

컴퓨터 카탈로그의 파일

  • Manifest.xml

  • DeploymentConfiguration.xml

  • UserManifest.xml(전역적으로 게시된 패키지)

  • UserDeploymentConfiguration.xml(전역적으로 게시된 패키지)

패키지가 연결 그룹의 일부일 때 사용되는 추가 컴퓨터 카탈로그 위치

다음 위치는 위에서 언급한 특정 패키지 위치 외에 있습니다.

%programdata%\Microsoft\AppV\Client\Catalog\PackageGroups\ConGroupGUID\ConGroupVerGUID

패키지가 연결 그룹의 일부인 경우 컴퓨터 카탈로그의 추가 파일

  • PackageGroupDescriptor.xml

  • UserPackageGroupDescriptor.xml(전역적으로 게시된 연결 그룹)

사용자 카탈로그

설명

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

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

로밍 사용자의 경우 기본적으로 사용자를 대상으로 하는 레거시 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:

위치

Description

암소

  • 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:

위치

Description

암소

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

패키지 추가

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

패키지 탑재

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

스트리밍 패키지

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

정책 설명

AllowHighCostLaunch

Windows 8 3G 및 셀룰러 네트워크를 통해 스트리밍할 수 있습니다.

Autoload

백그라운드 로드 설정을 지정합니다.

0 - 사용 안 함

1 – 이전에 사용한 패키지만

2 – 모든 패키지

PackageInstallationRoot

로컬 컴퓨터의 패키지 저장소에 대한 루트 폴더

PackageSourceRoot

패키지를 스트리밍해야 하는 루트 재정의

SharedContentStoreMode

VDI 시나리오에 공유 콘텐츠 저장소를 사용할 수 있습니다.

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

  • 백그라운드 스트리밍

  • 최적화된 스트리밍

  • 스트림 오류

백그라운드 스트리밍

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

최적화된 스트리밍

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

스트림 오류

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

App-V 패키지 스트리밍에 대한 자세한 내용은 을 방문하세요 https://go.microsoft.com/fwlink/?LinkId=392770.

스트리밍 최적화 시퀀싱은 에서 https://go.microsoft.com/fwlink/?LinkId=392771사용할 수 있습니다.

패키지 업그레이드

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

패키지 제거

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

로밍 레지스트리 및 데이터

App-V 5는 사용 중인 애플리케이션을 작성하는 방법에 따라 로밍할 때 거의 네이티브 환경을 제공할 수 있습니다. 기본적으로 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\SOFTWARE\Microsoft\AppV\Client\Packages{PkgGUID}{UserSID}\REGISTRY\MACHINE\SOFTWARE

  • HKCU\SOFTWARE\Microsoft\AppV\Client\Packages{PkgGUID}\Registry\User{UserSID}\SOFTWARE

App-V 및 폴더 리디렉션

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

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

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

패키지의 VFS 디렉터리 백업 저장소의 매핑된 위치

ProgramFilesX86

C:\users\jsmith\AppData<strong>Local\Microsoft\AppV\Client\VFS< GUID>\ProgramFilesX86

SystemX86

C:\users\jsmith\AppData<strong>Local\Microsoft\AppV\Client\VFS< GUID>\SystemX86

Windows

C:\users\jsmith\AppData<strong>Local\Microsoft\AppV\Client\VFS< GUID>\Windows

appv_ROOT

C:\users\jsmith\AppData<strong>Local\Microsoft\AppV\Client\VFS< GUID>\appv_ROOT

Appdata

C:\users\jsmith\AppData<strong>Roaming\Microsoft\AppV\Client\VFS< GUID>\AppData

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

패키지의 VFS 디렉터리 백업 저장소의 매핑된 위치

ProgramFilesX86

C:\users\jsmith\AppData<strong>Local\Microsoft\AppV\Client\VFS< GUID>\ProgramFilesX86

SystemX86

C:\users\jsmith\AppData<strong>Local\Microsoft\AppV\Client\VFS< GUID>\SystemX86

Windows

C:\users\jsmith\AppData<strong>Local\Microsoft\AppV\Client\VFS< GUID>\Windows

appv_ROOT

C:\users\jsmith\AppData<strong>Local\Microsoft\AppV\Client\VFS< GUID>\appv_ROOT

Appdata

\Fileserver\users\jsmith\roaming\Microsoft\AppV\Client\VFS< GUID>\AppData

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

  1. 게시 또는 가상 환경을 시작하는 동안 App-V 클라이언트는 AppData 디렉터리의 위치를 검색합니다.

  2. 로밍 AppData 경로가 로컬 또는 ino 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 전체 인프라 솔루션에 중점을 둡니다. Configuration Manager 2012와 App-V 통합에 대한 자세한 내용은 App-V 지원 구성을 참조하세요.

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

get-command *appv*

게시 새로 고침

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

  • Add-AppVPublishingServer: App-V 패키지를 제공하는 App-V 게시 서버를 사용하여 클라이언트를 구성합니다.

  • Set-AppVPublishingServer: App-V 게시 서버에 대한 현재 설정을 수정합니다.

  • Set-AppVClientConfiguration: App-V 클라이언트에 대한 현재 설정을 수정합니다.

  • Sync-AppVPublishingServer: App-V 게시 새로 고침 프로세스를 수동으로 시작합니다. 이 작업은 게시 서버를 구성하는 동안 만든 예약된 작업에서도 활용됩니다.

다음 섹션은 App-V 게시 새로 고침의 여러 단계에서 발생하는 작업을 자세히 설명하는 것입니다. topics 다음과 같습니다.

  • App-V 패키지 추가

  • App-V 패키지 게시

App-V 패키지 추가

클라이언트에 App-V 패키지를 추가하는 것은 새로 고침 프로세스 게시의 첫 번째 단계입니다. 최종 결과는 게시 새로 고침 추가 프로세스 중에 구성된 게시 서버에 연결되고 클라이언트에 상위 수준의 애플리케이션 목록을 전달하여 단일 패키지 추가 작업이 아닌 더 자세한 정보를 끌어온 경우를 제외하고 PowerShell의 cmdlet과 동일합니다 Add-AppVClientPackage . 이 프로세스는 패키지 또는 연결 그룹 추가 또는 업데이트에 대한 클라이언트를 구성한 다음 appv 파일에 액세스하여 계속됩니다. 다음으로 appv 파일의 콘텐츠가 확장되어 적절한 위치의 로컬 운영 체제에 배치됩니다. 다음은 패키지가 장애 스트리밍에 대해 구성되었다고 가정하는 프로세스의 자세한 워크플로입니다.

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

  1. PowerShell을 통한 수동 시작 또는 게시 새로 고침 프로세스의 작업 순서 시작

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

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

  2. App-V 클라이언트의 게시 에이전트는 직렬화된 아래의 모든 작업을 수행합니다.

    연결 그룹의 일부인 패키지 버전 업데이트를 처리할 수 없으므로 게시되지 않거나 사용하지 않도록 설정된 연결 그룹을 평가합니다.

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

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

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

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

      • 아이콘: 확장 지점의 대상입니다.

      • PE 헤더(이식 가능한 실행 파일 헤더): 디스크, 직접 액세스 또는 파일 형식을 통해 필요한 이미지에 대한 기본 정보를 포함하는 확장 지점의 대상입니다.

      • 스크립트: 게시 프로세스 전체에서 사용할 스크립트 디렉터리를 다운로드합니다.

    4. 패키지 저장소 채우기:

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

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

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

    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. App-V 커널 모드 드라이버 HKLM\Microsoft\Software\AppV\MAV에 패키지 등록

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

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

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

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

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

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

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

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

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

App-V 패키지 게시

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

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

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

    1. 사용자 대상 패키지: UserDeploymentConfiguration.xml 및 UserManifest.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 5 패키지 업그레이드 프로세스는 이전 버전의 App-V와 다릅니다. App-V는 다른 사용자에게 자격이 있는 컴퓨터에서 동일한 패키지의 여러 버전을 지원합니다. 패키지 저장소 및 카탈로그가 새 리소스로 업데이트되면 언제든지 패키지 버전을 추가할 수 있습니다. 새 버전 리소스 추가와 관련된 유일한 프로세스는 스토리지 최적화입니다. 업그레이드하는 동안 새 파일만 새 버전 저장소 위치에 추가되고 변경되지 않은 파일에 대한 하드 링크가 만들어집니다. 이렇게 하면 하나의 디스크 위치에만 파일을 표시한 다음 디스크에 파일 위치 항목이 있는 모든 폴더에 프로젝션하여 전체 스토리지를 줄일 수 있습니다. App-V 패키지 업그레이드에 대한 구체적인 세부 정보는 다음과 같습니다.

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

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

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

    1. 사용자 대상 패키지: UserDeploymentConfiguration.xml 및 UserManifest.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. 통합 작업을 수행합니다.

    • 매니페스트 및 동적 구성 파일에서 EP(확장 지점)를 통합합니다.
    1. 파일 기반 EP 데이터는 패키지 저장소의 접합 지점을 활용하여 AppData 폴더에 저장됩니다.

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

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

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

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

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

App-V 5 SP2부터: 최종 사용자가 사용 중인 패키지를 업그레이드하려고 하면 업그레이드 작업이 보류 중인 상태로 배치됩니다. 업그레이드는 다음 규칙에 따라 나중에 실행됩니다.

작업 유형 적용 가능한 규칙

사용자 기반 작업(예: 사용자에게 패키지 게시)

보류 중인 작업은 사용자가 로그오프한 후 다시 로그온한 후 수행됩니다.

전역 기반 작업(예: 전역적으로 연결 그룹 사용)

보류 중인 작업은 컴퓨터가 종료된 후 다시 시작될 때 수행됩니다.

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

사용자 기반 또는 전역 기반 작업 레지스트리 키가 생성되는 위치

사용자 기반 작업

KEY_CURRENT_USER\Software\Microsoft\AppV\Client\PendingTasks

전역 기반 작업

HKEY_LOCAL_MACHINE\Software\Microsoft\AppV\Client\PendingTasks

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

작업 세부 정보

컴퓨터에 패키지 추가

이 작업은 컴퓨터별로 지정되며 위의 패키지 추가 섹션의 단계를 완료하여 언제든지 수행할 수 있습니다.

패키지 게시

단계는 위의 패키지 게시 섹션을 참조하세요. 이 프로세스를 수행하려면 시스템의 확장 지점을 업데이트해야 합니다. 이 작업을 완료하면 최종 사용자가 애플리케이션을 사용할 수 없습니다.

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

시나리오 요구 사항

업그레이드하려고 할 때 App-V 패키지가 사용되지 않음

가상 애플리케이션, COM 서버 또는 셸 확장과 같은 패키지 구성 요소를 사용할 수 없습니다.

관리자는 최신 버전의 패키지를 게시하고 다음에 패키지 내의 구성 요소 또는 애플리케이션이 시작될 때 업그레이드가 작동합니다. 패키지의 새 버전이 스트리밍되고 실행됩니다. App-V 5의 이전 릴리스와 App-V 5 SP2의 이 시나리오에서는 아무것도 변경되지 않았습니다.

관리자가 최신 버전의 패키지를 게시할 때 App-V 패키지가 사용 중임

업그레이드 작업은 App-V 클라이언트에서 보류 중으로 설정됩니다. 즉, 패키지가 사용되지 않을 때 큐에 대기되고 나중에 수행됩니다.

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

패키지에 Windows Explorer 영구적으로 로드되는 셸 확장(Office 2013)이 있는 경우 사용자를 로그인할 수 없습니다. App-V 패키지 업그레이드를 시작하려면 사용자가 로그오프하고 다시 로그인해야 합니다.

전역 및 사용자 게시

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

  • 전역적으로 게시됨: 애플리케이션이 컴퓨터에 게시됩니다. 해당 컴퓨터의 모든 사용자가 사용할 수 있습니다. 업그레이드는 App-V 클라이언트 서비스가 시작될 때 발생하며 이는 머신을 효과적으로 다시 시작한다는 것을 의미합니다.

  • 사용자 게시: 애플리케이션이 사용자에게 게시됩니다. 컴퓨터에 여러 사용자가 있는 경우 애플리케이션을 사용자의 하위 집합에 게시할 수 있습니다. 업그레이드는 사용자가 로그인하거나 다시 게시할 때 발생합니다(주기적으로, ConfigMgr 정책 새로 고침 및 평가, App-V 주기적 게시/새로 고침 또는 PowerShell 명령을 통해 명시적으로).

App-V 패키지 제거

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

App-V 패키지 복구

복구 작업은 매우 간단하지만 컴퓨터의 많은 위치에 영향을 줄 수 있습니다. 앞에서 언급한 COW(Write에 복사) 위치가 제거되고 확장 지점이 통합 해제된 다음 다시 통합됩니다. 레지스트리에 등록된 위치를 검토하여 COW 데이터 배치 위치를 검토하세요. 이 작업은 자동으로 수행되며 App-V 클라이언트 콘솔 또는 PowerShell(Repair-AppVClientPackage)을 통해 복구 작업을 시작하는 것 외에는 관리 제어가 없습니다.

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 9.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 9</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 통합에 대한 자세한 내용은 에서 https://go.microsoft.com/fwlink/?LinkId=392834확인할 수 있습니다.

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

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 프로토콜 처리기

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

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

AppPath

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

AppPath 확장 지점은 매니페스트 또는 동적 구성 파일에서 구성되며 사용자에 대해 게시하는 동안 로컬 컴퓨터의 레지스트리에 저장됩니다. AppPath 검토 https://go.microsoft.com/fwlink/?LinkId=392835에 대한 추가 정보는 입니다.

가상 애플리케이션

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

확장 지점 규칙

위에서 설명한 확장 지점은 패키지가 게시된 방법에 따라 운영 체제에 통합됩니다. 전역 게시는 사용자 게시가 사용자 위치에 확장 지점을 배치하는 공용 컴퓨터 위치에 확장 지점을 배치합니다. 예를 들어 데스크톱에서 만들어지고 전역적으로 게시된 바로 가기는 바로 가기(%Public%\Desktop) 및 레지스트리 데이터(HKLM\Software\Classs)에 대한 파일 데이터를 생성합니다. 동일한 바로 가기에는 파일 데이터(%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 패키지를 배포하는 것은 매우 간단합니다. 그러나 조직에서 비즈니스 라인과 지리적, 정치적 경계에 걸쳐 AppV 애플리케이션을 배포할 때 하나의 설정 집합으로 애플리케이션을 한 번 시퀀스하는 기능은 불가능해집니다. App-V는 매니페스트 파일에서 시퀀싱하는 동안 특정 설정 및 구성을 캡처하지만 동적 구성 파일 수정도 지원하므로 이 시나리오를 위해 설계되었습니다.

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

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

동적 구성 파일의 예

아래 예제에서는 게시 후 및 정상 작업 중에 매니페스트, 배포 구성 및 사용자 구성 파일의 조합을 보여 주세요. 이러한 예제는 각 파일의 약어 예제입니다. 용도는 각 파일에서 사용할 수 있는 특정 범주에 대한 완전한 설명이 아니라 파일의 조합만 표시하는 것입니다. 자세한 내용은 다음에서 App-V 5 시퀀싱 가이드를 참조하세요. https://go.microsoft.com/fwlink/?LinkID=269810

매니페스트

<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는 가상 애플리케이션 게시 중에 클라이언트에서 시퀀싱 및 배포하는 동안 SxS(Side-By-Side) 어셈블리의 자동 패키징을 지원합니다. App-V 5 SP2는 시퀀싱 머신에 없는 어셈블리에 대해 시퀀싱하는 동안 SxS 어셈블리 캡처를 지원합니다. 또한 Visual C++(버전 8 이상) 및/또는 MSXML 런타임으로 구성된 어셈블리의 경우 시퀀서는 모니터링 중에 설치되지 않은 경우에도 이러한 종속성을 자동으로 검색하고 캡처합니다. Side by Side 어셈블리 기능은 App-V 시퀀서가 시퀀싱 워크스테이션에 이미 있는 어셈블리를 캡처하지 않고 패키지당 1비트 버전으로 제한되는 어셈블리를 민영화하지 않은 이전 버전의 App-V의 제한을 제거합니다. 이 동작으로 인해 클라이언트에 App-V 애플리케이션이 배포되어 필요한 SxS 어셈블리가 누락되어 애플리케이션 시작 실패가 발생했습니다. 이로 인해 패키징 프로세스는 가상 애플리케이션에 대한 지원을 보장하기 위해 패키지에 필요한 모든 어셈블리를 사용자의 클라이언트 운영 체제에 로컬로 설치해야 했습니다. 어셈블리 수와 필요한 종속성에 대한 애플리케이션 설명서가 부족한 경우 이 작업은 관리 및 구현 과제였습니다.

App-V의 Side by Side Assembly 지원에는 다음과 같은 기능이 있습니다.

  • 시퀀싱 워크스테이션에 어셈블리가 이미 설치되어 있는지 여부에 관계없이 시퀀싱 중에 SxS 어셈블리를 자동으로 캡처합니다.

  • App-V 클라이언트는 게시 시 필요한 SxS 어셈블리가 없을 때 클라이언트 컴퓨터에 자동으로 설치합니다.

  • Sequencer는 Sequencer 보고 메커니즘에서 VC 런타임 종속성을 보고합니다.

  • Sequencer를 사용하면 Sequencer에 이미 설치된 어셈블리를 패키지하지 않도록 선택하여 어셈블리가 이전에 대상 컴퓨터에 설치된 시나리오를 지원할 수 있습니다.

SxS 어셈블리 자동 게시

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

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

클라이언트 로깅

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

참고 App-V 5.0 SP3에서 일부 로그가 통합되어 다음 위치로 이동되었습니다.

Event logs/Applications and Services Logs/Microsoft/AppV/ServiceLog

이동된 로그 목록은 App-V 5.0 SP3 정보를 참조하세요.

아래에 설명된 세 가지 특정 범주의 이벤트가 기록되어 있습니다.

관리: App-V 클라이언트에 적용되는 구성에 대한 이벤트를 기록하고 기본 경고 및 오류를 포함합니다.

운영: App-V 클라이언트에서 완료된 App-V 작업의 감사 로그를 만드는 개별 구성 요소의 일반적인 App-V 실행 및 사용을 기록합니다.

가상 애플리케이션: 가상 애플리케이션이 시작되고 가상화 하위 시스템의 사용을 기록합니다.