refresh content

This commit is contained in:
Patti Short 2018-08-28 11:56:05 -07:00
parent 4b486fbbda
commit 28cb7bb594

View File

@ -1,54 +1,38 @@
--- ---
title: About App-V 5.1 dynamic configuration title: About App-V 5.1 dynamic configuration
description: You can use the dynamic configuration to customize an App-V 5.1 package for a user. Use the following information to create or edit an existing dynamic configuration file.
author: jamiejdt author: jamiejdt
ms.assetid: 35bc9908-d502-4a9c-873f-8ee17b6d9d74
ms.pagetype: mdop, appcompat, virtualization
ms.mktglfcycl: deploy
ms.sitesec: library
ms.prod: w10
ms.date: 08/28/2018
ms.author: pashort
--- ---
About App-V 5.1 dynamic configuration # About App-V 5.1 dynamic configuration
=====================================
You can use the dynamic configuration to customize an App-V 5.1 package for a You can use the dynamic configuration to customize an App-V 5.1 package for a user. Use the following information to create or edit an existing dynamic configuration file.
user. Use the following information to create or edit an existing dynamic
configuration file.
When you edit the dynamic configuration file, it customizes how an App-V 5.1 When you edit the dynamic configuration file, it customizes how an App-V 5.1 package runs for a user or group. This helps to provide a more convenient method for package customization by removing the need to re-sequence packages using the desired settings and provides a way to keep package content and custom settings independent.
package runs for a user or group. This helps to provide a more convenient method
for package customization by removing the need to re-sequence packages using the
desired settings and provides a way to keep package content and custom settings
independent.
Advanced: Dynamic Configuration ## Advanced: dynamic configuration
-------------------------------
Virtual application packages contain a manifest that provides all the core Virtual application packages contain a manifest that provides all the core information for the package. This information includes the defaults for the package settings and determines settings in the most basic form (with no additional customization). If you want to adjust these defaults for a particular user or group, you can create and edit the following files:
information for the package. This information includes the defaults for the
package settings and determines settings in the most basic form (with no
additional customization). If you want to adjust these defaults for a particular
user or group, you can create and edit the following files:
- User Configuration file - [User Configuration file](#dynamic-user-configuration-file)
- Deployment configuration file - Deployment configuration file
The previous .xml files specify package settings and allow for packages to be The previous .xml files specify package settings and allow for packages to be customized without directly affecting the packages. When a package is created, the sequencer automatically generates default deployment and user configuration .xml files using the package manifest data. Therefore, these automatically generated configuration files simply reflect the default settings that the package innately as from how things were configured during sequencing. If you apply these configuration files to a package in the form generated by the sequencer, the packages will have the same default settings that came from their manifest. This provides you with a package-specific template to get started if any of the defaults must be changed.
customized without directly affecting the packages. When a package is created,
the sequencer automatically generates default deployment and user configuration
.xml files using the package manifest data. Therefore, these automatically
generated configuration files simply reflect the default settings that the
package innately as from how things were configured during sequencing. If you
apply these configuration files to a package in the form generated by the
sequencer, the packages will have the same default settings that came from their
manifest. This provides you with a package-specific template to get started if
any of the defaults must be changed.
> [!NOTE] The following information can only be used to modify sequencer >[!NOTE]
> generated configuration files to customize packages to meet specific user or >The following information can only be used to modify sequencer generated configuration files to customize packages to meet specific user or group requirements.
> group requirements.
### Dynamic Configuration file contents ### Dynamic configuration file contents
All of the additions, deletions, and updates in the configuration files need to All of the additions, deletions, and updates in the configuration files need to be made in relation to the default values specified by the package's manifest information:
be made in relation to the default values specified by the package's manifest
information:
- User Configuration .xml file - User Configuration .xml file
@ -56,78 +40,53 @@ information:
- Package Manifest   - Package Manifest  
The previous table represents how the files will be read. The first entry The previous table represents how the files will be read. The first entry represents what will be read last, therefore, its content takes precedence. Therefore, all packages inherently contain and provide default settings from the package manifest. If a deployment configuration .xml file with customized settings is applied, it will override the package manifest defaults. If a user configuration .xml file with customized settings is applied prior to that, it will override both the deployment configuration and the package manifest defaults.
represents what will be read last, therefore, its content takes precedence.
Therefore, all packages inherently contain and provide default settings from the
package manifest. If a deployment configuration .xml file with customized
settings is applied, it will override the package manifest defaults. If a user
configuration .xml file with customized settings is applied prior to that, it
will override both the deployment configuration and the package manifest
defaults.
The following list displays more information about the two file types: The following list displays more information about the two file types:
- **User Configuration File (UserConfig)** Allows you to specify or modify - **User Configuration File (UserConfig)** Allows you to specify or modify custom settings for a package. These settings will be applied for a specific user when the package is deployed to a computer running the App-V 5.1 client.
custom settings for a package. These settings will be applied for a specific
user when the package is deployed to a computer running the App-V 5.1
client.
- **Deployment Configuration File (DeploymentConfig)** Allows you to specify - **Deployment Configuration File (DeploymentConfig)** Allows you to specify or modify the default settings for a package. These settings will be applied for all users when a package is deployed to a computer running the App-V 5.1 client.
or modify the default settings for a package. These settings will be applied
for all users when a package is deployed to a computer running the App-V 5.1
client.
To customize the settings for a package for a specific set of users on a To customize the settings for a package for a specific set of users on a computer or to make changes that will be applied to local user locations such as HKCU, the UserConfig file should be used. To modify the default settings of a package for all users on a machine or to make changes that will be applied to global locations such as HKEY_LOCAL_MACHINE and the all users folder, the
computer or to make changes that will be applied to local user locations such as
HKCU, the UserConfig file should be used. To modify the default settings of a
package for all users on a machine or to make changes that will be applied to
global locations such as HKEY_LOCAL_MACHINE and the all users folder, the
DeploymentConfig file should be used. DeploymentConfig file should be used.
The UserConfig file provides configuration settings that can be applied to a The UserConfig file provides configuration settings that can be applied to a single user without affecting any other users on a client:
single user without affecting any other users on a client:
- Extensions that will be integrated into the native system per user:- - Extensions that will be integrated into the native system per user: shortcuts, file-type associations, URL protocols, AppPaths, software clients and COM
shortcuts, File-Type associations, URL Protocols, AppPaths, Software Clients
and COM
- Virtual Subsystems:- Application Objects, Environment variables, Registry - Virtual subsystems: application objects, environment variables, registry modifications, services and fonts
modifications, Services and Fonts
- Scripts (User context only) - Scripts (user context only)
- Managing Authority (for controlling co-existence of package with App-V 4.6) - Managing authority (for controlling co-existence of package with App-V 4.6)
The DeploymentConfig file provides configuration settings in two sections, one The DeploymentConfig file provides configuration settings in two sections, one relative to the machine context and one relative to the user context providing the same capabilities listed in the UserConfig list above:
relative to the machine context and one relative to the user context providing
the same capabilities listed in the UserConfig list above:
- All UserConfig settings above - All UserConfig settings above
- Extensions that can only be applied globally for all users - Extensions that can only be applied globally for all users
- Virtual Subsystems that can be configured for global machine locations e.g. - Virtual Subsystems that can be configured for global machine locations e.g. registry
registry
- Product Source URL - Product source URL
- Scripts (Machine context only) - Scripts (machine context only)
- Controls to Terminate Child Processes - Controls to terminate child processes
### File structure ### File structure
The structure of the App-V 5.1 Dynamic Configuration file is explained in the The structure of the App-V 5.1 Dynamic Configuration file is explained in the
following section. following section.
### Dynamic User Configuration file ### Dynamic user configuration file
**Header** - the header of a dynamic user configuration file is as follows: **Header** - the header of a dynamic user configuration file is as follows:
```
\<?xml version="1.0" encoding="utf-8"?\>\<UserConfiguration <?xml version="1.0" encoding="utf-8"?><UserConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved"
**PackageId**="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/userconfiguration">
xmlns="http://schemas.microsoft.com/appv/2010/userconfiguration"\> ```
The **PackageId** is the same value as exists in the Manifest file. The **PackageId** is the same value as exists in the Manifest file.
**Body** - the body of the Dynamic User Configuration file can include all the **Body** - the body of the Dynamic User Configuration file can include all the
@ -141,46 +100,45 @@ allowed in the body:
extensions for a given application within a package. The **Application ID** extensions for a given application within a package. The **Application ID**
must exist in the Manifest file or it will be ignored. must exist in the Manifest file or it will be ignored.
- \<UserConfiguration **PackageId**="1f8488bf-2257-46b4-b27f-09c9dbaae707" ```
DisplayName="Reserved" <UserConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/userconfiguration">
xmlns="http://schemas.microsoft.com/appv/2010/userconfiguration"\>
\<Applications\> <Applications>
\<!-- No new application can be defined in policy. AppV Client will ignore <!--No new application can be defined in policy. AppV Client will ignore any application ID that is not also in the Manifest file-->
any application ID that is not also in the Manifest file --\>
\<Application Id="{a56fa627-c35f-4a01-9e79-7d36aed8225a}" Enabled="false"\> <Application Id="{a56fa627-c35f-4a01-9e79-7d36aed8225a}" Enabled="false">
\</Application\> </Application>
\</Applications\> </Applications>
\</UserConfiguration\>
1. **Subsystems** - AppExtensions and other subsystems are arranged as subnodes
under the \<Subsystems\>:
- \<UserConfiguration **PackageId**="1f8488bf-2257-46b4-b27f-09c9dbaae707"
DisplayName="Reserved"
xmlns="http://schemas.microsoft.com/appv/2010/userconfiguration"\>
\<Subsystems\>
.. ..
\</Subsystems\> </UserConfiguration>
.. ```
\</UserConfiguration\> 1. **Subsystems** - AppExtensions and other subsystems are arranged as subnodes under the <Subsystems>:
Each subsystem can be enabled/disabled using the “**Enabled**” attribute. ```
Below are the various subsystems and usage samples. <UserConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/userconfiguration">
**Extensions:** <Subsystems>
..
</Subsystems>
..
</UserConfiguration>
```
Each subsystem can be enabled/disabled using the “**Enabled**” attribute. Below are the various subsystems and usage samples.
**Extensions:**
Some subsystems (Extension Subsystems) control Extensions. Those subsystems Some subsystems (Extension Subsystems) control Extensions. Those subsystems
are:- shortcuts, File-Type associations, URL Protocols, AppPaths, Software are:- shortcuts, File-Type associations, URL Protocols, AppPaths, Software
@ -198,17 +156,17 @@ allowed in the body:
1. If the user defined this in either the dynamic or deployment config 1. If the user defined this in either the dynamic or deployment config
file: file:
- ``` ```
**\<Shortcuts  Enabled="true"\>** <Shortcuts  Enabled="true"\>
**\<Extensions\>** <Extensions>
... ...
**\</Extensions\>** </Extensions>
**\</Shortcuts\>** </Shortcuts>
``` ```
@ -216,9 +174,9 @@ allowed in the body:
1. If the user defined only the following: 1. If the user defined only the following:
- ``` ```
**\<Shortcuts  Enabled="true"/\>** <Shortcuts  Enabled="true"/>
``` ```
@ -226,15 +184,15 @@ allowed in the body:
1. If the user defines the following: 1. If the user defines the following:
- ``` ```
**\<Shortcuts  Enabled="true"\>** <Shortcuts  Enabled="true">
**\<Extensions/\>** <Extensions/>
**\</Shortcuts\>** </Shortcuts>
**```** ```
Then all the shortcuts within the manifest will still be ignored. There will Then all the shortcuts within the manifest will still be ignored. There will
be no shortcuts integrated. be no shortcuts integrated.
@ -244,149 +202,151 @@ allowed in the body:
**Shortcuts:** This controls shortcuts that will be integrated into the **Shortcuts:** This controls shortcuts that will be integrated into the
local system. Below is a sample with 2 shortcuts: local system. Below is a sample with 2 shortcuts:
**```**
\<Subsystems\> ```
\<Shortcuts Enabled="true"\> <Subsystems>
  \<Extensions\> <Shortcuts Enabled="true">
    \<Extension Category="AppV.Shortcut"\>   <Extensions>
      \<Shortcut\>     <Extension Category="AppV.Shortcut">
        \<File\>[{Common Programs}]\\Microsoft Contoso\\Microsoft ContosoApp       <Shortcut>
Filler 2010.lnk\</File\>
        \<Target\>[{PackageRoot}]\\Contoso\\ContosoApp.EXE\</Target\>         <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\>       <Icon>[{Windows}]\Installer\{90140000-0011-0000-0000-0000000FF1CE}\inficon.exe</Icon>
        \<Arguments /\>         <Arguments />
        \<WorkingDirectory /\>         <WorkingDirectory />
        \<AppUserModelId\>ContosoApp.Filler.3\</AppUserModelId\>         <AppUserModelId>ContosoApp.Filler.3</AppUserModelId>
        \<Description\>Fill out dynamic forms to gather and reuse         <Description>Fill out dynamic forms to gather and reuse information throughout the organization using Microsoft
information throughout the organization using Microsoft ContosoApp.</Description>
ContosoApp.\</Description\>
        \<Hotkey\>0\</Hotkey\>         <Hotkey>0</Hotkey>
        \<ShowCommand\>1\</ShowCommand\>         <ShowCommand>1</ShowCommand>
   
      \<ApplicationId\>[{PackageRoot}]\\Contoso\\ContosoApp.EXE\</ApplicationId\>       <ApplicationId>[{PackageRoot}]\Contoso\ContosoApp.EXE</ApplicationId>
      \</Shortcut\>       </Shortcut>
  \</Extension\>   </Extension>
  \<Extension Category="AppV.Shortcut"\>   <Extension Category="AppV.Shortcut">
    \<Shortcut\>     <Shortcut>
   
    \<File\>[{AppData}]\\Microsoft\\Contoso\\Recent\\Templates.LNK\</File\>     <File>[{AppData}]\Microsoft\Contoso\Recent\Templates.LNK</File>
      \<Target\>[{AppData}]\\Microsoft\\Templates\</Target\>       <Target>[{AppData}]\Microsoft\Templates</Target>
      \<Icon /\>       <Icon />
      \<Arguments /\>       <Arguments />
      \<WorkingDirectory /\>       <WorkingDirectory />
      \<AppUserModelId /\>       <AppUserModelId />
      \<Description /\>       <Description />
      \<Hotkey\>0\</Hotkey\>       <Hotkey>0</Hotkey>
      \<ShowCommand\>1\</ShowCommand\>       <ShowCommand>1</ShowCommand>
      \<!-- Note the ApplicationId is optional --\>       <!-- Note the ApplicationId is optional -->
    \</Shortcut\>     </Shortcut>
  \</Extension\>   </Extension>
 \</Extensions\>  </Extensions>
\</Shortcuts\> </Shortcuts>
```
```
**File-Type Associations:** Associates File-types with programs to open by **File-Type Associations:** Associates File-types with programs to open by
default as well as setup the context menu. (MIME types can also be setup default as well as setup the context menu. (MIME types can also be setup
using this susbsystem). Sample File-type Association is below: using this susbsystem). Sample File-type Association is below:
**```**
\<FileTypeAssociations Enabled="true"\> ```
\<Extensions\> <FileTypeAssociations Enabled="true">
  \<Extension Category="AppV.FileTypeAssociation"\> <Extensions>
    \<FileTypeAssociation\>   <Extension Category="AppV.FileTypeAssociation">
      \<FileExtension MimeAssociation="true"\>     <FileTypeAssociation>
      \<Name\>.docm\</Name\>       <FileExtension MimeAssociation="true">
      \<ProgId\>contosowordpad.DocumentMacroEnabled.12\</ProgId\>       <Name>.docm</Name>
      \<PerceivedType\>document\</PerceivedType\>       <ProgId>contosowordpad.DocumentMacroEnabled.12</ProgId>
      <PerceivedType>document</PerceivedType>
   
    \<ContentType\>application/vnd.ms-contosowordpad.document.macroEnabled.12\</ContentType\>     <ContentType>application/vnd.ms-contosowordpad.document.macroEnabled.12</ContentType>
      \<OpenWithList\>       <OpenWithList>
        \<ApplicationName\>wincontosowordpad.exe\</ApplicationName\>         <ApplicationName>wincontosowordpad.exe</ApplicationName>
      \</OpenWithList\>       </OpenWithList>
     \<OpenWithProgIds\>      <OpenWithProgIds>
        \<ProgId\>contosowordpad.8\</ProgId\>         <ProgId>contosowordpad.8</ProgId>
      \</OpenWithProgIds\>       </OpenWithProgIds>
      \<ShellNew\>       <ShellNew>
        \<Command /\>         <Command />
        \<DataBinary /\>         <DataBinary />
        \<DataText /\>         <DataText />
        \<FileName /\>         <FileName />
        \<NullFile\>true\</NullFile\>         <NullFile>true</NullFile>
        \<ItemName /\>         <ItemName />
        \<IconPath /\>         <IconPath />
        \<MenuText /\>         <MenuText />
        \<Handler /\>         <Handler />
      \</ShellNew\>       </ShellNew>
    \</FileExtension\>     </FileExtension>
    \<ProgId\>     <ProgId>
       \<Name\>contosowordpad.DocumentMacroEnabled.12\</Name\>        <Name>contosowordpad.DocumentMacroEnabled.12</Name>
   
      \<DefaultIcon\>[{Windows}]\\Installer\\{90140000-0011-0000-0000-0000000FF1CE}\\contosowordpadicon.exe,15\</DefaultIcon\>       <DefaultIcon\>[{Windows}]\Installer\{90140000-0011-0000-0000-0000000FF1CE}\contosowordpadicon.exe,15</DefaultIcon>
        <Description>Blah Blah Blah</Description>         <Description>Blah Blah Blah</Description>
@ -460,8 +420,9 @@ allowed in the body:
``` ```
**URL Protocols**: This controls the URL Protocols that are integrated into
the local registry of the client machine e.g. “mailto:” **URL Protocols**: This controls the URL Protocols that are integrated into the local registry of the client machine e.g. “mailto:”
``` ```