App-V 동적 구성 정보

적용 대상:

  • Windows 10
  • Windows 11

동적 구성을 사용하여 사용자에 대한 App-V 패키지를 사용자 지정할 수 있습니다. 이 문서에서는 기존 동적 구성 파일을 만들거나 편집하는 방법을 설명합니다.

동적 구성 파일을 편집할 때 사용자 또는 그룹에 대해 App-V 패키지를 실행하는 방법을 사용자 지정합니다. 따라서 패키지 사용자 지정은 원하는 설정을 사용하여 패키지를 다시 지정할 필요를 제거하고 패키지 콘텐츠와 사용자 지정 설정을 독립적으로 유지하는 방법을 제공하여 보다 편리합니다.

고급: 동적 구성

가상 애플리케이션 패키지에는 패키지에 대한 모든 핵심 정보를 제공하는 매니페스트가 포함되어 있습니다. 이 정보에는 패키지 설정에 대한 기본값이 포함되며 가장 기본적인 형식으로 설정을 결정합니다(추가 사용자 지정 없음). 특정 사용자 또는 그룹에 대해 이러한 기본값을 조정하려면 다음 파일을 만들고 편집할 수 있습니다.

  • 사용자 구성 파일
  • 배포 구성 파일

이러한 .xml 파일은 패키지 설정을 지정하여 패키지에 직접 영향을 주지 않고 패키지를 사용자 지정할 수 있습니다. 패키지를 만들면 시퀀서가 패키지 매니페스트 데이터를 사용하여 기본 배포 및 사용자 구성 .xml 파일을 자동으로 생성합니다. 이러한 자동으로 생성된 구성 파일은 시퀀싱 중에 구성된 패키지의 기본 설정을 반영합니다. 시퀀서에서 생성된 양식의 패키지에 이러한 구성 파일을 적용하는 경우 패키지에는 해당 매니페스트에서 제공된 것과 동일한 기본 설정이 있습니다. 이 결과는 기본값을 변경해야 하는 경우 시작할 패키지별 템플릿을 제공합니다.

참고

다음 정보는 특정 사용자 또는 그룹 요구 사항을 충족하도록 패키지를 사용자 지정하기 위해 시퀀서 생성 구성 파일을 수정하는 데만 사용할 수 있습니다.

동적 구성 파일 콘텐츠

패키지의 매니페스트 정보에 지정된 기본값과 관련하여 구성 파일의 모든 추가, 삭제 및 업데이트를 수행해야 합니다. 다음 목록은 대부분의 우선 순위에서 최소 우선 순위까지 이러한 파일 간의 관계를 나타냅니다.

  • 사용자 구성 .xml 파일
  • 배포 구성 .xml 파일
  • 패키지 매니페스트

첫 번째 항목은 마지막으로 읽을 항목을 나타냅니다. 따라서 해당 콘텐츠가 우선합니다. 모든 패키지는 기본적으로 패키지 매니페스트의 기본 설정을 포함하고 제공하지만 우선 순위가 가장 적습니다. 사용자 지정된 설정을 사용하여 배포 구성 .xml 파일을 적용하면 패키지 매니페스트의 기본값이 재정의됩니다. 패키지 매니페스트의 기본값을 재정의하기 전에 사용자 지정 설정이 있는 사용자 구성 .xml 파일을 적용하면 배포 구성과 패키지 매니페스트의 기본값이 모두 재정의됩니다.

다음과 같은 두 가지 유형의 구성 파일이 있습니다.

  • 사용자 구성 파일(UserConfig): 패키지에 대한 사용자 지정 설정을 지정하거나 수정할 수 있습니다. 이러한 설정은 패키지가 App-V 클라이언트를 실행하는 컴퓨터에 배포될 때 특정 사용자에게 적용됩니다.
  • 배포 구성 파일(DeploymentConfig): 패키지의 기본 설정을 지정하거나 수정할 수 있습니다. 이러한 설정은 패키지가 App-V 클라이언트를 실행하는 컴퓨터에 배포될 때 모든 사용자에게 적용됩니다.

UserConfig 파일을 사용하여 컴퓨터의 특정 사용자 집합에 대한 패키지 설정을 사용자 지정하거나 HKCU와 같은 로컬 사용자 위치에 적용할 변경을 수행할 수 있습니다. DeploymentConfig 파일을 사용하여 컴퓨터의 모든 사용자에 대한 패키지의 기본 설정을 수정하거나 HKEY_LOCAL_MACHINE 및 모든 사용자 폴더와 같은 전역 위치에 적용할 변경을 수행할 수 있습니다.

UserConfig 파일은 클라이언트의 다른 사용자에게 영향을 주지 않고 단일 사용자에게 적용할 수 있는 구성 설정을 제공합니다.

  • 사용자당 네이티브 시스템에 통합될 확장: 바로 가기, File-Type 연결, URL 프로토콜, AppPaths, 소프트웨어 클라이언트 및 COM.
  • 가상 하위 시스템: 애플리케이션 개체, 환경 변수, 레지스트리 수정, 서비스 및 글꼴.
  • 스크립트(사용자 컨텍스트에만 해당).

DeploymentConfig 파일은 컴퓨터 컨텍스트를 기준으로 한 섹션과 이전 UserConfig 목록에 나열된 동일한 기능을 제공하는 사용자 컨텍스트를 기준으로 한 섹션의 구성 설정을 제공합니다.

  • 이 항목의 이전 섹션에 있는 모든 UserConfig 설정
  • 모든 사용자에 대해서만 전역적으로 적용할 수 있는 확장
  • 레지스트리와 같은 전역 컴퓨터 위치에 대해 구성할 수 있는 가상 하위 시스템
  • 제품 원본 URL
  • 스크립트(컴퓨터 컨텍스트에만 해당)
  • 자식 프로세스를 종료하는 컨트롤

파일 구조

App-V 동적 구성 파일의 구조는 다음 섹션에 설명되어 있습니다.

동적 사용자 구성 파일

동적 사용자 구성 파일의 헤더 예는 다음과 같습니다.

<?xml version="1.0" encoding="utf-8"?>
<UserConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/userconfiguration">

PackageId는 매니페스트 파일에 있는 것과 동일한 값입니다.

동적 사용자 구성 파일 본문

동적 사용자 구성 파일의 본문에는 매니페스트 파일에 정의된 모든 앱 확장 지점과 가상 애플리케이션을 구성하는 정보가 포함될 수 있습니다. 본문에는 다음 네 개의 하위 섹션이 허용됩니다.

애플리케이션: 패키지 내의 매니페스트 파일에 포함된 모든 앱 확장명은 매니페스트 파일에 정의된 애플리케이션 ID로 할당됩니다. 이렇게 하면 패키지 내에서 지정된 애플리케이션에 대한 모든 확장을 사용하거나 사용하지 않도록 설정할 수 있습니다. 애플리케이션 ID는 매니페스트 파일에 있어야 합니다. 그렇지 않으면 무시됩니다.

    <UserConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/userconfiguration">
    <Applications>
    <!-- No new application can be defined in policy. AppV Client will ignore any application ID that is not also in the Manifest file -->
    <Application Id="{a56fa627-c35f-4a01-9e79-7d36aed8225a}" Enabled="false">
    </Application>
    </Applications>
    …
    </UserConfiguration>

하위 시스템: AppExtensions 및 기타 하위 시스템은 다음 예제와 같이 아래에 <Subsystems>하위 노드로 정렬됩니다.

    <UserConfiguration **PackageId**="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/userconfiguration">
    <Subsystems>
    ..
    </Subsystems>
    ..
    </UserConfiguration>

각 하위 시스템은 Enabled 특성을 사용하여 사용/사용하지 않도록 설정할 수 있습니다. 다음 섹션에서는 다양한 하위 시스템 및 사용 샘플에 대해 설명합니다.

동적 사용자 구성 파일 확장자

확장 하위 시스템은 확장을 제어합니다. 이러한 하위 시스템은 바로 가기, File-Type 연결, URL 프로토콜, AppPaths, 소프트웨어 클라이언트 및 COM입니다.

확장 하위 시스템은 콘텐츠와 독립적으로 사용하도록 설정하고 사용하지 않도록 설정할 수 있습니다.  따라서 바로 가기를 사용하도록 설정하면 클라이언트는 기본적으로 매니페스트 내에 포함된 바로 가기를 사용합니다. 각 확장 하위 시스템에는 노드가 <Extensions> 포함될 수 있습니다. 이 자식 요소가 있는 경우 클라이언트는 해당 하위 시스템에 대한 매니페스트 파일의 콘텐츠를 무시하고 구성 파일의 콘텐츠만 사용합니다.

바로 가기 하위 시스템의 예

예제 1

사용자가 동적 또는 배포 구성 파일에서 다음 구문을 정의하면 콘텐츠가 무시됩니다.

                                     <Shortcuts  Enabled="true">
                                                 <Extensions
                                                  ...
                                                 </Extensions>
                                     </Shortcuts>

예제 2

사용자가 다음 구문만 정의한 경우 매니페스트의 콘텐츠는 게시하는 동안 통합됩니다.


                                    `<Shortcuts  Enabled="true"/>`

예제 3

매니페스트의 모든 바로 가기는 무시되며 사용자가 다음 구문을 정의하는 경우 바로 가기가 통합되지 않습니다.

                           <Shortcuts  Enabled="true">
                                                 <Extensions/>
                                     </Shortcuts>

지원되는 확장 하위 시스템

바로 가기: 이 하위 시스템은 로컬 시스템에 통합될 바로 가기를 제어합니다. 다음 예제에는 두 가지 바로 가기가 있습니다.

    <Subsystems>
    <Shortcuts Enabled="true">
      <Extensions>
        <Extension Category="AppV.Shortcut">
          <Shortcut>
            <File>\[{Common Programs}\]\\Microsoft Contoso\\Microsoft ContosoApp Filler 2010.lnk</File>
            <Target>\[{PackageRoot}\]\\Contoso\\ContosoApp.EXE</Target>
            <Icon>\[{Windows}\]\\Installer\\{90140000-0011-0000-0000-0000000FF1CE}\\inficon.exe</Icon>
            <Arguments />
            <WorkingDirectory />
            <AppUserModelId>ContosoApp.Filler.3</AppUserModelId>
            <Description>Fill out dynamic forms to gather and reuse information throughout the organization using Microsoft ContosoApp.</Description>
            <Hotkey>0</Hotkey>
            <ShowCommand>1</ShowCommand>
            <ApplicationId>\[{PackageRoot}\]\\Contoso\\ContosoApp.EXE</ApplicationId>
          </Shortcut>
      </Extension>
      <Extension Category="AppV.Shortcut">
        <Shortcut>
          <File>\[{AppData}\]\\Microsoft\\Contoso\\Recent\\Templates.LNK</File>
          <Target>\[{AppData}\]\\Microsoft\\Templates</Target>
          <Icon />
          <Arguments />
          <WorkingDirectory />
          <AppUserModelId />
          <Description />
          <Hotkey>0</Hotkey>
          <ShowCommand>1</ShowCommand>
          <!-- Note the ApplicationId is optional -->
        </Shortcut>
      </Extension>
     </Extensions>
    </Shortcuts>

파일 형식 연결: 기본적으로 열리고 상황에 맞는 메뉴를 설정하는 프로그램과 파일 형식을 연결합니다. (MIME 형식은 이 하위 시스템을 사용하여 설정할 수도 있습니다.) FileType 연결의 예는 다음과 같습니다.

    <FileTypeAssociations Enabled="true">
    <Extensions>
      <Extension Category="AppV.FileTypeAssociation">
        <FileTypeAssociation>
          <FileExtension MimeAssociation="true">
          <Name>.docm</Name>
          <ProgId>contosowordpad.DocumentMacroEnabled.12</ProgId>
          <PerceivedType>document</PerceivedType>
          <ContentType>application/vnd.ms-contosowordpad.document.macroEnabled.12</ContentType>
          <OpenWithList>
            <ApplicationName>wincontosowordpad.exe</ApplicationName>
          </OpenWithList>
         <OpenWithProgIds>
            <ProgId>contosowordpad.8</ProgId>
          </OpenWithProgIds>
          <ShellNew>
            <Command />
            <DataBinary />
            <DataText />
            <FileName />
            <NullFile>true</NullFile>
            <ItemName />
            <IconPath />
            <MenuText />
            <Handler />
          </ShellNew>
        </FileExtension>
        <ProgId>
           <Name>contosowordpad.DocumentMacroEnabled.12</Name>
            <DefaultIcon>\[{Windows}\]\\Installer\\{90140000-0011-0000-0000-0000000FF1CE}\\contosowordpadicon.exe,15</DefaultIcon>
            <Description>Blah Blah Blah</Description>
            <FriendlyTypeName>\[{FOLDERID\_ProgramFilesX86}\]\\Microsoft Contoso 14\\res.dll,9182</FriendlyTypeName>
            <InfoTip>\[{FOLDERID\_ProgramFilesX86}\]\\Microsoft Contoso 14\\res.dll,1424</InfoTip>
            <EditFlags>0</EditFlags>
            <ShellCommands>
              <DefaultCommand>Open</DefaultCommand>
              <ShellCommand>
                 <ApplicationId>{e56fa627-c35f-4a01-9e79-7d36aed8225a}</ApplicationId>
                 <Name>Edit</Name>
                 <FriendlyName>&Edit</FriendlyName>
                 <CommandLine>"\[{PackageRoot}\]\\Contoso\\WINcontosowordpad.EXE" /vu "%1"</CommandLine>
              </ShellCommand>
              </ShellCommand>
                <ApplicationId>{e56fa627-c35f-4a01-9e79-7d36aed8225a}</ApplicationId>
                <Name>Open</Name>
                <FriendlyName>&Open</FriendlyName>
                <CommandLine>"\[{PackageRoot}\]\\Contoso\\WINcontosowordpad.EXE" /n "%1"</CommandLine>
                <DropTargetClassId />
                <DdeExec>
                  <Application>mscontosowordpad</Application>
                  <Topic>ShellSystem</Topic>
                  <IfExec>\[SHELLNOOP\]</IfExec>
                  <DdeCommand>\[SetForeground\]\[ShellNewDatabase "%1"\]</DdeCommand>
                </DdeExec>
              </ShellCommand>
            </ShellCommands>
          </ProgId>
         </FileTypeAssociation>
       </Extension>
      </Extensions>
      </FileTypeAssociations>

URL 프로토콜: 이 하위 시스템은 클라이언트 컴퓨터의 로컬 레지스트리에 통합된 URL 프로토콜을 제어합니다. 다음 예제에서는 "mailto:" 프로토콜을 보여 줍니다.

    <URLProtocols Enabled="true">
    <Extensions>
    <Extension Category="AppV.URLProtocol">
    <URLProtocol>
      <Name>mailto</Name>
      <ApplicationURLProtocol>
      <DefaultIcon>\[{ProgramFilesX86}\]\\Microsoft Contoso\\Contoso\\contosomail.EXE,-9403</DefaultIcon>
      <EditFlags>2</EditFlags>
      <Description />
      <AppUserModelId />
      <FriendlyTypeName />
      <InfoTip />
    <SourceFilter />
      <ShellFolder />
      <WebNavigableCLSID />
      <ExplorerFlags>2</ExplorerFlags>
      <CLSID />
      <ShellCommands>
      <DefaultCommand>open</DefaultCommand>
      <ShellCommand>
      <ApplicationId>\[{ProgramFilesX86}\]\\Microsoft Contoso\\Contoso\\contosomail.EXE</ApplicationId>
      <Name>open</Name>
      <CommandLine>\[{ProgramFilesX86}\\Microsoft Contoso\\Contoso\\contosomail.EXE" -c OEP.Note /m "%1"</CommandLine>
      <DropTargetClassId />
      <FriendlyName />
      <Extended>0</Extended>
      <LegacyDisable>0</LegacyDisable>
      <SuppressionPolicy>2</SuppressionPolicy>
       <DdeExec>
      <NoActivateHandler />
      <Application>contosomail</Application>
      <Topic>ShellSystem</Topic>
      <IfExec>\[SHELLNOOP\]</IfExec>
      <DdeCommand>\[SetForeground\]\[ShellNewDatabase "%1"\]</DdeCommand>
      </DdeExec>
      </ShellCommand>
      </ShellCommands>
      </ApplicationURLProtocol>
      </URLProtocol>
      </Extension>
      </Extension>
      </URLProtocols>

소프트웨어 클라이언트: 앱이 전자 메일 클라이언트, 뉴스 읽기 프로그램 또는 미디어 플레이어로 등록할 수 있도록 허용하고 앱이 프로그램 액세스 설정 및 컴퓨터 기본값 UI에 표시되도록 합니다. 대부분의 경우 사용하도록 설정하고 사용하지 않도록 설정하기만 하면 됩니다. 다른 모든 클라이언트를 그대로 유지하려는 경우에만 전자 메일 클라이언트를 사용하거나 사용하지 않도록 설정할 수 있는 컨트롤도 있습니다.

    <SoftwareClients Enabled="true">
      <ClientConfiguration EmailEnabled="false" />
    </SoftwareClients>

AppPaths: contoso.exe 같은 애플리케이션이 "myapp"이라는 apppath 이름으로 등록된 경우 이 하위 시스템을 사용하면 실행 메뉴에 "myapp"을 입력하여 앱을 열 수 있습니다.

    <AppPaths Enabled="true">
    <Extensions>
    <Extension Category="AppV.AppPath">
    <AppPath>
      <ApplicationId>\[{ProgramFilesX86}\]\\Microsoft Contoso\\Contoso\\contosomail.EXE</ApplicationId>
      <Name>contosomail.exe</Name>
      <ApplicationPath>\[{ProgramFilesX86}\]\\Microsoft Contoso\\Contoso\\contosomail.EXE</ApplicationPath>
      <PATHEnvironmentVariablePrefix />
      <CanAcceptUrl>false</CanAcceptUrl>
      <SaveUrl />
    </AppPath>
    </Extension>
    </Extensions>
    </AppPaths>

COM: 애플리케이션에서 로컬 COM 서버를 등록할 수 있습니다. 모드는 통합, 격리 또는 해제일 수 있습니다. 이솔 때.

    <COM Mode="Isolated"/>

동적 사용자 구성 파일에 대한 기타 설정

확장 외에도 다음과 같은 다른 하위 시스템을 사용/사용하지 않도록 설정하고 편집할 수 있습니다.

가상 커널 개체

    <Objects Enabled="false" />
```xml

**Virtual Registry**: use this if you want to set a registry in the Virtual Registry within HKCU.

```xml
    <Registry Enabled="true">
    <Include>
    <Key Path="\\REGISTRY\\USER\\\[{AppVCurrentUserSID}\]\\Software\\ABC">
    <Value Type="REG\_SZ" Name="Bar" Data="NewValue" />
     </Key>
      <Key Path="\\REGISTRY\\USER\\\[{AppVCurrentUserSID}\]\\Software\\EmptyKey" />
     </Include>
    <Delete>
      </Registry>

가상 파일 시스템

          <FileSystem Enabled="true" />

가상 글꼴

          <Fonts Enabled="false" />

가상 환경 변수

    <EnvironmentVariables Enabled="true">
    <Include>
           <Variable Name="UserPath" Value="%path%;%UserProfile%" />
           <Variable Name="UserLib" Value="%UserProfile%\\ABC" />
           </Include>
          <Delete>
           <Variable Name="lib" />
            </Delete>
            </EnvironmentVariables>

가상 서비스

          <Services Enabled="false" />

UserScripts

스크립트는 애플리케이션이 실행되기 전에 가상 환경을 설정하거나 변경하고 배포 또는 제거 시 스크립트를 실행하거나 애플리케이션이 종료된 후 환경을 클린 수 있습니다. 샘플 스크립트를 보려면 시퀀서의 샘플 사용자 구성 파일 출력을 참조하세요. 스크립트를 설정하는 데 사용할 수 있는 다양한 트리거에 대한 자세한 내용은 스크립트 섹션을 참조하세요 .

동적 배포 구성 파일

동적 배포 구성 파일 헤더

배포 구성 파일의 헤더는 다음과 같습니다.

<?xml version="1.0" encoding="utf-8"?><DeploymentConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/deploymentconfiguration">

PackageId는 매니페스트 파일에 있는 값과 동일합니다.

동적 배포 구성 파일 본문

배포 구성 파일의 본문에는 다음 두 개의 섹션이 포함됩니다.

  • 사용자 구성 섹션에서는 이전 섹션에서 설명한 사용자 구성 파일과 동일한 콘텐츠를 허용합니다. 패키지가 사용자에게 게시되면 사용자 구성 파일도 제공되지 않는 한 이 섹션의 모든 앱 확장 구성 설정이 패키지 내의 매니페스트에서 해당 설정을 재정의합니다. UserConfig 파일도 제공되면 배포 구성 파일의 사용자 설정 대신 사용됩니다. 패키지가 전역적으로 게시된 경우 배포 구성 파일의 내용만 매니페스트와 함께 사용됩니다.
  • 컴퓨터 구성 섹션에는 컴퓨터의 특정 사용자가 아닌 전체 컴퓨터에 대해서만 구성할 수 있는 정보가 포함되어 있습니다. 예를 들어 VFS에서 레지스트리 키를 HKEY_LOCAL_MACHINE.
<DeploymentConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/deploymentconfiguration">
<UserConfiguration>
..
</UserConfiguration>
<MachineConfiguration>
..
</MachineConfiguration>
..
</MachineConfiguration>
</DeploymentConfiguration>

사용자 구성: 이 섹션에 대한 자세한 내용은 동적 사용자 구성을 참조하세요.

컴퓨터 구성: 배포 구성 파일의 컴퓨터 구성 섹션에서는 가상 레지스트리의 HKEY_LOCAL_MACHINE 레지스트리 키와 같이 컴퓨터의 특정 사용자가 아닌 전체 컴퓨터에 대해서만 설정할 수 있는 정보를 구성합니다. 이 요소에는 다음 네 개의 하위 섹션이 있을 수 있습니다.

하위

AppExtensions 및 기타 하위 시스템은 아래에 <Subsystems>하위 노드로 정렬됩니다.

    <MachineConfiguration>
      <Subsystems>
      ..
      </Subsystems>
    ..
    </MachineConfiguration>

다음 섹션에서는 다양한 하위 시스템 및 사용 샘플에 대해 설명합니다.

확장명

일부 하위 시스템(확장 하위 시스템)은 모든 사용자에게만 적용할 수 있는 확장을 제어합니다. 하위 시스템은 애플리케이션 기능입니다. 이 하위 시스템은 모든 사용자에게만 적용할 수 있으므로 이 유형의 확장을 로컬 시스템에 통합하려면 패키지를 전역적으로 게시해야 합니다. 사용자 구성 확장 컨트롤 및 설정에 대한 규칙은 컴퓨터 구성의 규칙에도 적용됩니다.

애플리케이션 기능

애플리케이션 기능 확장은 Windows OS 인터페이스의 기본 프로그램에서 사용됩니다. 이를 통해 애플리케이션은 특정 파일 확장자를 열 수 있고, 시작 메뉴의 인터넷 브라우저 슬롯에 대한 경쟁자로서, 특정 Windows MIME 형식을 열 수 있는 것으로 등록할 수 있습니다. 또한 이 확장은 가상 애플리케이션을 기본 프로그램 설정 UI에 표시합니다.

    <ApplicationCapabilities Enabled="true">
      <Extensions>
       <Extension Category="AppV.ApplicationCapabilities">
        <ApplicationCapabilities>
         <ApplicationId>\[{PackageRoot}\]\\LitView\\LitViewBrowser.exe</ApplicationId>
         <Reference>
          <Name>LitView Browser</Name>
          <Path>SOFTWARE\\LitView\\Browser\\Capabilities</Path>
         </Reference>
       <CapabilityGroup>
        <Capabilities>
         <Name>@\[{ProgramFilesX86}\]\\LitView\\LitViewBrowser.exe,-12345</Name>
         <Description>@\[{ProgramFilesX86}\]\\LitView\\LitViewBrowser.exe,-12346</Description>
         <Hidden>0</Hidden>
         <EMailSoftwareClient>Lit View E-Mail Client</EMailSoftwareClient>
         <FileAssociationList>
          <FileAssociation Extension=".htm" ProgID="LitViewHTML" />
          <FileAssociation Extension=".html" ProgID="LitViewHTML" />
          <FileAssociation Extension=".shtml" ProgID="LitViewHTML" />
         </FileAssociationList>
         <MIMEAssociationList>
          <MIMEAssociation Type="audio/mp3" ProgID="LitViewHTML" />
          <MIMEAssociation Type="audio/mpeg" ProgID="LitViewHTML" />
         </MIMEAssociationList>
        <URLAssociationList>
          <URLAssociation Scheme="http" ProgID="LitViewHTML.URL.http" />
         </URLAssociationList>
         </Capabilities>
      </CapabilityGroup>
       </ApplicationCapabilities>
      </Extension>
    </Extensions>
    </ApplicationCapabilities>

동적 배포 구성 파일에 대한 기타 설정

확장 외에도 다른 하위 시스템을 편집할 수 있습니다.

  • 컴퓨터 전체 가상 레지스트리: HKEY_Local_Machine 내의 가상 레지스트리에 레지스트리 키를 설정하려는 경우 이 하위 시스템을 사용합니다.
    <Registry>
    <Include>
      <Key Path="\\REGISTRY\\Machine\\Software\\ABC">
        <Value Type="REG\_SZ" Name="Bar" Data="Baz" />
       </Key>
      <Key Path="\\REGISTRY\\Machine\\Software\\EmptyKey" />
     </Include>
    <Delete>
    </Registry>
  • 컴퓨터 전체 가상 커널 개체
    <Objects>
    <NotIsolate>
       <Object Name="testObject" />
     </NotIsolate>
    </Objects>
  • ProductSourceURLOptOut: 패키지의 URL을 PackageSourceRoot를 통해 전역적으로 수정하여 지점 시나리오를 지원할 수 있는지 여부를 나타냅니다. 기본적으로 False로 설정됩니다. 값 변경 내용은 다음 시작에 적용됩니다.
    <MachineConfiguration>
      ..
      <ProductSourceURLOptOut Enabled="true" />
      ..
    </MachineConfiguration>
  • MachineScripts: 배포, 게시 또는 제거 시 스크립트를 실행하도록 패키지를 구성할 수 있습니다. 예제 스크립트를 보려면 sequencer에서 생성된 샘플 배포 구성 파일을 참조하세요. 다음 섹션에서는 스크립트를 설정하는 데 사용할 수 있는 다양한 트리거에 대한 자세한 정보를 제공합니다.

  • TerminateChildProcess: 이 하위 시스템을 사용하여 application.exe 프로세스가 종료될 때 애플리케이션 실행 파일의 자식 프로세스가 종료되도록 지정할 수 있습니다.

    <MachineConfiguration>
      ..
      <TerminateChildProcesses>
        <Application Path="\[{PackageRoot}\]\\Contoso\\ContosoApp.EXE" />
        <Application Path="\[{PackageRoot}\]\\LitView\\LitViewBrowser.exe" />
        <Application Path="\[{ProgramFilesX86}\]\\Microsoft Contoso\\Contoso\\contosomail.EXE" />
      </TerminateChildProcesses>
      ..
    </MachineConfiguration>

스크립트

다음 표에서는 다양한 스크립트 이벤트 및 실행할 수 있는 컨텍스트에 대해 설명합니다.

스크립트 실행 시간 배포 구성에서 지정할 수 있습니다. 사용자 구성에서 지정할 수 있습니다. 패키지의 가상 환경에서 실행할 수 있습니다. 특정 애플리케이션의 컨텍스트에서 실행할 수 있습니다. 시스템/사용자 컨텍스트에서 실행: (배포 구성, 사용자 구성)
AddPackage X (SYSTEM, N/A)
PublishPackage X X (SYSTEM, User)
UnpublishPackage X X (SYSTEM, User)
RemovePackage X (SYSTEM, N/A)
StartProcess X X X X (사용자, 사용자)
ExitProcess X X X (사용자, 사용자)
StartVirtualEnvironment X X X (사용자, 사용자)
TerminateVirtualEnvironment X X (사용자, 사용자)

단일 이벤트 트리거에서 여러 스크립트 사용

App-V는 App-V 4.6에서 Windows 클라이언트용 App-V로 변환하는 패키지를 포함하여 App-V 패키지에 대한 단일 이벤트 트리거에서 여러 스크립트의 사용을 지원합니다. 여러 스크립트를 사용할 수 있도록 App-V는 App-V 클라이언트에 포함된 ScriptRunner.exe 스크립트 시작 관리자 애플리케이션을 사용합니다.

단일 이벤트 트리거에서 여러 스크립트를 사용하는 방법

실행하려는 각 스크립트에 대해 해당 스크립트를 인수로 ScriptRunner.exe 애플리케이션에 전달합니다. 애플리케이션은 각 스크립트에 대해 지정한 인수와 함께 각 스크립트를 별도로 실행합니다. 트리거당 하나의 스크립트(ScriptRunner.exe)만 사용합니다.

참고

먼저 명령 프롬프트에서 다중 스크립트 줄을 실행하여 모든 인수가 올바르게 빌드되었는지 확인한 후 배포 구성 파일에 추가하는 것이 좋습니다.

예제 스크립트 및 매개 변수 설명

다음 예제 파일 및 테이블을 사용하여 배포 또는 사용자 구성 파일을 수정하여 실행하려는 스크립트를 추가합니다.

<MachineScripts>
 <AddPackage>
   <Path>ScriptRunner.exe</Path>
   <Arguments>
   -appvscript script1.exe arg1 arg2 –appvscriptrunnerparameters –wait –timeout=10
   -appvscript script2.vbs arg1 arg2
   -appvscript script3.bat arg1 arg2 –appvscriptrunnerparameters –wait –timeout=30 –rollbackonerror
   </Arguments>
   <Wait timeout=”40” RollbackOnError=”true”/>
 </AddPackage>
</MachineScripts>
예제 파일의 매개 변수 설명
<AddPackage> 패키지를 추가하거나 게시할 때와 같이 스크립트를 실행하는 이벤트 트리거의 이름입니다.
ScriptRunner.exe App-V 클라이언트에 포함된 스크립트 시작 관리자 애플리케이션입니다.

ScriptRunner.exe App-V 클라이언트에 포함되어 있지만 App-V 클라이언트의 위치는 %path%에 있어야 합니다. 그렇지 않으면 ScriptRunner가 실행되지 않습니다. ScriptRunner.exe 는 일반적으로 C:\Program Files\Microsoft Application Virtualization\Client 폴더에 있습니다.
-appvscript script1.exe arg1 arg2 –appvscriptrunnerparameters –wait –timeout=10

-appvscript script2.vbs arg1 arg2

-appvscript script3.bat arg1 arg2 –appvscriptrunnerparameters –wait –timeout=30 -rollbackonerror
-appvscript- 실행하려는 실제 스크립트를 나타내는 토큰입니다.
script1.exe- 실행하려는 스크립트의 이름입니다.
arg1 arg2- 실행하려는 스크립트에 대한 인수입니다.
-appvscriptrunnerparameters- script1.exe 대한 실행 옵션을 나타내는 토큰입니다.
-wait— ScriptRunner가 다음 스크립트로 진행하기 전에 script1.exe 실행이 완료되기를 기다리도록 지시하는 토큰입니다.
-timeout=xx 초 후 현재 스크립트 실행을 중지하도록 ScriptRunner에 알리는 토큰입니다. 지정된 다른 모든 스크립트는 계속 실행됩니다.
-rollbackonerror— 아직 실행되지 않은 모든 스크립트 실행을 중지하고 App-V 클라이언트에 오류를 롤백하도록 ScriptRunner에 지시하는 토큰입니다.
<Wait timeout=”40” RollbackOnError=”true”/> ScriptRunner.exe 전체 완료를 기다립니다.

전체 실행기의 시간 제한 값을 개별 스크립트의 시간 제한 값 합계보다 크거나 같도록 설정합니다.

개별 스크립트가 오류를 보고하고 rollbackonerror가 True로 설정된 경우 ScriptRunner는 오류를 App-V 클라이언트에 보고해야 합니다.

ScriptRunner는 파일 형식이 컴퓨터에 설치된 애플리케이션과 연결된 모든 스크립트를 실행합니다. 연결된 애플리케이션이 없거나 스크립트의 파일 형식이 컴퓨터의 애플리케이션과 연결되어 있지 않으면 스크립트가 실행되지 않습니다.

App-V 매니페스트 파일을 사용하여 동적 구성 파일 만들기

세 가지 방법 중 하나를 사용하여 동적 구성 파일을 만들 수 있습니다. 즉, 수동으로 App-V 관리 콘솔을 사용하거나 패키지를 시퀀싱하여 두 개의 샘플 파일이 있는 패키지를 생성합니다.

App-V 관리 콘솔을 사용하여 파일을 만드는 방법에 대한 자세한 내용은 App-V 관리 콘솔 을 사용하여 사용자 지정 구성 파일을 만드는 방법을 참조하세요.

파일을 수동으로 만들려면 이전 섹션에 나열된 구성 요소를 단일 파일로 결합할 수 있습니다. 그러나 수동으로 만든 파일 대신 시퀀서에서 생성된 파일을 사용하는 것이 좋습니다.