content refresh and reformat of code blocks

This commit is contained in:
Patti Short 2018-08-28 14:20:27 -07:00
parent 28cb7bb594
commit c39ff0bd73

View File

@ -13,677 +13,582 @@ ms.author: pashort
# About App-V 5.1 dynamic configuration
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.
With dynamic configuration, you can edit the dynamic configuration file to customize how an App-V 5.1 package runs for a user or group. Package customization removes the need to resequence packages using the desired settings. It also provides a way to keep package content and custom settings independent.
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 manifest and configuration files
## Advanced: dynamic configuration
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).
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:
- [User Configuration file](#dynamic-user-configuration-file)
- Deployment configuration file
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.
When a package gets created, the sequencer generates default deployment and user configuration .xml files automatically using the package manifest data. Therefore, these generated files reflect the default settings configured during sequencing. If you apply these files to a package in the form generated by the sequencer, the packages have the same default settings that came from their manifest.
>[!NOTE]
>The following information can only be used to modify sequencer generated configuration files to customize packages to meet specific user or group requirements.
### Dynamic configuration file contents
Use these generated files to make changes, if necessary, which doesnt directly affect the package. If you want to add, delete or update the configuration files, make your changes about the default values in the manifest information.
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:
### User configuration file contents (UserConfig.xml)
- User Configuration .xml file
The UserConfig file provides configuration settings that get applied for a specific user when deploying the package to a computer running the App-V 5.1 client. These settings dont affect any other users on the client.
- Deployment Configuration .xml file
Use the UserConfig file to specify or modify custom settings for a package:
- Package Manifest  
- **Extensions integrated into the native system per user:** shortcuts, file-type associations, URL protocols, AppPaths, software clients and COM
- **Virtual subsystems:** application objects, environment variables, registry modifications, services and fonts
- **Scripts** (user context only)
- **Managing authority** (for controlling co-existence of package with App-V 4.6)
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.
#### Header
The following list displays more information about the two file types:
The header of a dynamic user configuration file looks like:
- **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.
- **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.
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
DeploymentConfig file should be used.
The UserConfig file provides configuration settings that can be applied to a single user without affecting any other users on a client:
- Extensions that will be integrated into the native system per user: shortcuts, file-type associations, URL protocols, AppPaths, software clients and COM
- Virtual subsystems: application objects, environment variables, registry modifications, services and fonts
- Scripts (user context only)
- Managing authority (for controlling co-existence of package with App-V 4.6)
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:
- All UserConfig settings above
- Extensions that can only be applied globally for all users
- Virtual Subsystems that can be configured for global machine locations e.g. registry
- Product source URL
- Scripts (machine context only)
- Controls to terminate child processes
### File structure
The structure of the App-V 5.1 Dynamic Configuration file is explained in the
following section.
### Dynamic user configuration file
**Header** - the header of a dynamic user configuration file is as follows:
```
```xml
<?xml version="1.0" encoding="utf-8"?><UserConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved"
xmlns="http://schemas.microsoft.com/appv/2010/userconfiguration">
```
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
app extension points that are defined in the Manifest file, as well as
information to configure virtual applications. There are four subsections
allowed in the body:
#### Body
1. **Applications** - All app-extensions that are contained in the Manifest
file within a package are assigned with an Application ID, which is also
defined in the manifest file. This allows you to enable or disable all the
extensions for a given application within a package. The **Application ID**
must exist in the Manifest file or it will be ignored.
The body of the dynamic user configuration file can include all the app extension points defined in the manifest file, as well as information to configure virtual applications. There are four subsections allowed in the body:
```
<UserConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/userconfiguration">
1. **Applications**
2. **Subsystems**
3. **UserScripts**
4. **ManagingAuthority**
<Applications>
##### Applications
<!--No new application can be defined in policy. AppV Client will ignore any application ID that is not also in the Manifest file-->
All app-extensions contained in the manifest file within a package have an Application ID assigned, which you find in the manifest file. The Application ID lets you enable or disable all extensions for a given application within a package. The Application ID must exist in the manifest file, or it gets ignored.
<Application Id="{a56fa627-c35f-4a01-9e79-7d36aed8225a}" Enabled="false">
```XML
<UserConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/userconfiguration">
</Application>
<Applications>
</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">
</UserConfiguration>
</Application>
</Applications>
..
</UserConfiguration>
```
##### Subsystems
AppExtensions and other subsystems arranged as subnodes.
```XML
<UserConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/userconfiguration">
<Subsystems>
..
</Subsystems>
..
</UserConfiguration>
```
You can enable or disable each subsystem using the **Enabled** attribute.
**Extensions**
Some subsystems (extension subsystems) control extensions. Those subsystems are Shortcuts, File-Type associations, URL Protocols, AppPaths, Software Clients, and COM.
Extension subsystems can be enabled and disabled independently of the content. For example, if you enable Shortcuts, the client uses the Shortcuts contained within the manifest by default. Each extension subsystem can contain an \<Extensions\> node. If this child element is present, the client ignores the content in the manifest file for that subsystem and only use the content in the configuration file.
_**Examples:**_
- If you define this in either the user or deployment config file, the content in the manifest gets ignored.
```XML
<Shortcuts Enabled="true"\>
<Extensions>
...
</Extensions>
</Shortcuts>
```
- If you define only the following, the content in the manifest gets integrated during publishing.
```XML
<Shortcuts Enabled="true"/>
```
- If you define the following, all Shortcuts within the manifest still get ignored. In other words, no Shortcuts get integrated.
```XML
<Shortcuts Enabled="true">
<Extensions/>
</Shortcuts>
```
1. **Subsystems** - AppExtensions and other subsystems are arranged as subnodes under the <Subsystems>:
_**Supported extension subsystems:**_
```
<UserConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/userconfiguration">
**Shortcuts** extension subsystem controls what shortcuts get integrated into the local system.
<Subsystems>
```XML
..
<Subsystems>
</Subsystems>
<Shortcuts Enabled="true">
..
<Extensions>
</UserConfiguration>
<Extension Category="AppV.Shortcut">
```
<Shortcut>
Each subsystem can be enabled/disabled using the “**Enabled**” attribute. Below are the various subsystems and usage samples.
<File>[{Common Programs}]\Microsoft Contoso\Microsoft ContosoApp Filler 2010.lnk</File>
**Extensions:**
<Target>[{PackageRoot}]\Contoso\ContosoApp.EXE</Target>
Some subsystems (Extension Subsystems) control Extensions. Those subsystems
are:- shortcuts, File-Type associations, URL Protocols, AppPaths, Software
Clients and COM
Extension Subsystems can be enabled and disabled independently of the
content.  Thus if Shortcuts are enabled, The client uses the shortcuts
contained within the manifest by default. Each Extension Subsystem can
contain an \<Extensions\> node. If this child element is present, the client
ignores the content in the Manifest file for that subsystem and only use the
content in the configuration file.
<Icon>[{Windows}]\Installer\{90140000-0011-0000-0000-0000000FF1CE}\inficon.exe</Icon>
Example using the shortcuts subsystem:
<Arguments />
1. If the user defined this in either the dynamic or deployment config
file:
<WorkingDirectory />
```
<AppUserModelId>ContosoApp.Filler.3</AppUserModelId>
<Shortcuts  Enabled="true"\>
<Description>Fill out dynamic forms to gather and reuse information throughout the organization using Microsoft ContosoApp.</Description>
<Extensions>
<Hotkey>0</Hotkey>
...
<ShowCommand>1</ShowCommand>
</Extensions>
<ApplicationId>[{PackageRoot}]\Contoso\ContosoApp.EXE</ApplicationId>
</Shortcuts>
</Shortcut>
```
</Extension>
Content in the manifest will be ignored.   
<Extension Category="AppV.Shortcut">
1. If the user defined only the following:
<Shortcut>
```
<File>[{AppData}]\Microsoft\Contoso\Recent\Templates.LNK</File>
<Shortcuts  Enabled="true"/>
<Target>[{AppData}]\Microsoft\Templates</Target>
```
<Icon />
Then the content in the Manifest gets integrated during publishing.
<Arguments />
1. If the user defines the following:
<WorkingDirectory />
```
<AppUserModelId />
<Shortcuts  Enabled="true">
<Description />
<Extensions/>
<Hotkey>0</Hotkey>
</Shortcuts>
<ShowCommand>1</ShowCommand>
```
<!-- Note the ApplicationId is optional -->
Then all the shortcuts within the manifest will still be ignored. There will
be no shortcuts integrated.
</Shortcut>
The supported Extension Subsystems are:
</Extension>
**Shortcuts:** This controls shortcuts that will be integrated into the
local system. Below is a sample with 2 shortcuts:
</Extensions>
</Shortcuts>
```
```
<Subsystems>
**File-Type Associates** extension subsystem associates file types with programs to open by default as well as set up the context menu.
<Shortcuts Enabled="true">
>[!TIP]
>You can set up the subsystem with MIME types.
  <Extensions>
    <Extension Category="AppV.Shortcut">
```XML
      <Shortcut>
<FileTypeAssociations Enabled="true">
        <File>[{Common Programs}]\Microsoft Contoso\Microsoft ContosoApp
Filler 2010.lnk</File>
<Extensions>
        <Target>[{PackageRoot}]\Contoso\ContosoApp.EXE</Target>
<Extension Category="AppV.FileTypeAssociation">
 
      <Icon>[{Windows}]\Installer\{90140000-0011-0000-0000-0000000FF1CE}\inficon.exe</Icon>
<FileTypeAssociation>
        <Arguments />
<FileExtension MimeAssociation="true">
        <WorkingDirectory />
<Name>.docm</Name>
        <AppUserModelId>ContosoApp.Filler.3</AppUserModelId>
<ProgId>contosowordpad.DocumentMacroEnabled.12</ProgId>
        <Description>Fill out dynamic forms to gather and reuse information throughout the organization using Microsoft
ContosoApp.</Description>
<PerceivedType>document</PerceivedType>
        <Hotkey>0</Hotkey>
<ContentType>application/vnd.ms-contosowordpad.document.macroEnabled.12</ContentType>
        <ShowCommand>1</ShowCommand>
<OpenWithList>
 
      <ApplicationId>[{PackageRoot}]\Contoso\ContosoApp.EXE</ApplicationId>
<ApplicationName>wincontosowordpad.exe</ApplicationName>
      </Shortcut>
</OpenWithList>
  </Extension>
<OpenWithProgIds>
  <Extension Category="AppV.Shortcut">
<ProgId>contosowordpad.8</ProgId>
    <Shortcut>
</OpenWithProgIds>
 
    <File>[{AppData}]\Microsoft\Contoso\Recent\Templates.LNK</File>
<ShellNew>
      <Target>[{AppData}]\Microsoft\Templates</Target>
<Command />
      <Icon />
<DataBinary />
      <Arguments />
<DataText />
      <WorkingDirectory />
<FileName />
      <AppUserModelId />
<NullFile>true</NullFile>
      <Description />
<ItemName />
      <Hotkey>0</Hotkey>
<IconPath />
      <ShowCommand>1</ShowCommand>
<MenuText />
      <!-- Note the ApplicationId is optional -->
<Handler />
    </Shortcut>
</ShellNew>
  </Extension>
</FileExtension>
 </Extensions>
<ProgId>
</Shortcuts>
<Name>contosowordpad.DocumentMacroEnabled.12</Name>
```
<DefaultIcon\>[{Windows}]\Installer\{90140000-0011-0000-0000-000000FF1CE}\contosowordpadicon.exe,15</DefaultIcon>
<Description>Blah Blah Blah</Description>
**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
using this susbsystem). Sample File-type Association is below:
<FriendlyTypeName>[{FOLDERID_ProgramFilesX86}]\Microsoft Contoso 14\res.dll,9182</FriendlyTypeName>
<InfoTip>[{FOLDERID_ProgramFilesX86}]\Microsoft Contoso 14\res.dll,1424</InfoTip>
```
<EditFlags>0</EditFlags>
<FileTypeAssociations Enabled="true">
<ShellCommands>
<Extensions>
<DefaultCommand>Open</DefaultCommand>
  <Extension Category="AppV.FileTypeAssociation">
<ShellCommand>
    <FileTypeAssociation>
<ApplicationId>{e56fa627-c35f-4a01-9e79-7d36aed8225a}</ApplicationId>
      <FileExtension MimeAssociation="true">
<Name>Edit</Name>
      <Name>.docm</Name>
<FriendlyName>&Edit</FriendlyName>
      <ProgId>contosowordpad.DocumentMacroEnabled.12</ProgId>
<CommandLine>"[{PackageRoot}]\Contoso\WINcontosowordpad.EXE" /vu "%1"</CommandLine>
      <PerceivedType>document</PerceivedType>
</ShellCommand>
 
    <ContentType>application/vnd.ms-contosowordpad.document.macroEnabled.12</ContentType>
</ShellCommand>
      <OpenWithList>
<ApplicationId>{e56fa627-c35f-4a01-9e79-7d36aed8225a}</ApplicationId>
        <ApplicationName>wincontosowordpad.exe</ApplicationName>
<Name>Open</Name>
      </OpenWithList>
<FriendlyName>&Open</FriendlyName>
     <OpenWithProgIds>
<CommandLine>"[{PackageRoot}]\Contoso\WINcontosowordpad.EXE" /n "%1"</CommandLine>
        <ProgId>contosowordpad.8</ProgId>
<DropTargetClassId />
      </OpenWithProgIds>
<DdeExec>
      <ShellNew>
<Application>mscontosowordpad</Application>
        <Command />
<Topic>ShellSystem</Topic>
        <DataBinary />
<IfExec>[SHELLNOOP]</IfExec>
        <DataText />
<DdeCommand>[SetForeground][ShellNewDatabase"%1"]</DdeCommand>
        <FileName />
</DdeExec>
        <NullFile>true</NullFile>
</ShellCommand>
        <ItemName />
</ShellCommands>
        <IconPath />
</ProgId>
        <MenuText />
</FileTypeAssociation>
        <Handler />
</Extension>
      </ShellNew>
</Extensions>
    </FileExtension>
</FileTypeAssociations>
    <ProgId>
```
       <Name>contosowordpad.DocumentMacroEnabled.12</Name>
**URL Protocols** extension subsystem controls the URL protocols integrated into the local registry of the client machine, for example, _mailto:_.
 
      <DefaultIcon\>[{Windows}]\Installer\{90140000-0011-0000-0000-0000000FF1CE}\contosowordpadicon.exe,15</DefaultIcon>
        <Description>Blah Blah Blah</Description>
```XML
        <FriendlyTypeName>[{FOLDERID_ProgramFilesX86}]\Microsoft Contoso
14\res.dll,9182</FriendlyTypeName>
<URLProtocols Enabled="true">
        <InfoTip>[{FOLDERID_ProgramFilesX86}]\Microsoft Contoso
14\res.dll,1424</InfoTip>
<Extensions>
        <EditFlags>0</EditFlags>
<Extension Category="AppV.URLProtocol">
        <ShellCommands>
<URLProtocol>
          <DefaultCommand>Open</DefaultCommand>
<Name>mailto</Name>
          <ShellCommand>
<ApplicationURLProtocol>
 
           <ApplicationId>{e56fa627-c35f-4a01-9e79-7d36aed8225a}</ApplicationId>
<DefaultIcon>[{ProgramFilesX86}]\MicrosoftContoso\Contoso\contosomail.EXE,-9403</DefaultIcon>
             <Name>Edit</Name>
<EditFlags>2</EditFlags>
             <FriendlyName>&Edit</FriendlyName>
<Description />
 
           <CommandLine>"[{PackageRoot}]\Contoso\WINcontosowordpad.EXE"
/vu "%1"</CommandLine>
<AppUserModelId />
          </ShellCommand>
<FriendlyTypeName />
          </ShellCommand>
<InfoTip />
 
          <ApplicationId>{e56fa627-c35f-4a01-9e79-7d36aed8225a}</ApplicationId>
<SourceFilter />
            <Name>Open</Name>
<ShellFolder />
            <FriendlyName>&Open</FriendlyName>
<WebNavigableCLSID />
            <CommandLine>"[{PackageRoot}]\Contoso\WINcontosowordpad.EXE"
/n "%1"</CommandLine>
<ExplorerFlags>2</ExplorerFlags>
            <DropTargetClassId />
<CLSID />
            <DdeExec>
<ShellCommands>
              <Application>mscontosowordpad</Application>
<DefaultCommand>open</DefaultCommand>
              <Topic>ShellSystem</Topic>
<ShellCommand>
              <IfExec>[SHELLNOOP]</IfExec>
<ApplicationId>[{ProgramFilesX86}]\Microsoft Contoso\Contoso\contosomail.EXE</ApplicationId>
              <DdeCommand>[SetForeground][ShellNewDatabase
"%1"]</DdeCommand>
<Name>open</Name>
            </DdeExec>
<CommandLine>[{ProgramFilesX86}\Microsoft Contoso\Contoso\contosomail.EXE" -c OEP.Note /m "%1"</CommandLine>
          </ShellCommand>
<DropTargetClassId />
        </ShellCommands>
<FriendlyName />
      </ProgId>
<Extended>0</Extended>
     </FileTypeAssociation>
<LegacyDisable>0</LegacyDisable>
   </Extension>
<SuppressionPolicy>2</SuppressionPolicy>
  </Extensions>
<DdeExec>
  </FileTypeAssociations>
<NoActivateHandler />
```
<Application>contosomail</Application>
<Topic>ShellSystem</Topic>
**URL Protocols**: This controls the URL Protocols that are integrated into the local registry of the client machine e.g. “mailto:”
<IfExec>[SHELLNOOP]</IfExec>
<DdeCommand>[SetForeground][ShellNewDatabase "%1"]</DdeCommand>
```
</DdeExec>
<URLProtocols Enabled="true">
</ShellCommand>
<Extensions>
</ShellCommands>
<Extension Category="AppV.URLProtocol">
</ApplicationURLProtocol>
<URLProtocol>
</URLProtocol>
  <Name>mailto</Name>
</Extension>
  <ApplicationURLProtocol>
</Extension>
  <DefaultIcon>[{ProgramFilesX86}]\Microsoft
Contoso\Contoso\contosomail.EXE,-9403</DefaultIcon>
</URLProtocols>
  <EditFlags>2</EditFlags>
```
  <Description />
**Software Clients** extension subsystem allows the app to register as an email client, news reader, media player and makes the app visible in the Set program access and Computer defaults UI. In most cases, you should only need to enable and disable it. There is also a control to enable and disable the email client specifically if you want the other clients still enabled except for that client.
  <AppUserModelId />
```XML
  <FriendlyTypeName />
<SoftwareClients Enabled="true">
  <InfoTip />
<ClientConfiguration EmailEnabled="false" />
<SourceFilter />
</SoftwareClients>
  <ShellFolder />
```
  <WebNavigableCLSID />
**AppPaths** extension subsystem opens apps registered with an application path. For example, if contoso.exe has an apppath name of _myapp_, users can type _myapp_ from the run menu, opening contoso.exe.
```XML
  <ExplorerFlags>2</ExplorerFlags>
<AppPaths Enabled="true">
  <CLSID />
<Extensions>
  <ShellCommands>
<Extension Category="AppV.AppPath">
  <DefaultCommand>open</DefaultCommand>
<AppPath>
  <ShellCommand>
<ApplicationId>[{ProgramFilesX86}]\Microsoft Contoso\Contoso\contosomail.EXE</ApplicationId>
  <ApplicationId>[{ProgramFilesX86}]\Microsoft
Contoso\Contoso\contosomail.EXE</ApplicationId>
<Name>contosomail.exe</Name>
  <Name>open</Name>
<ApplicationPath>[{ProgramFilesX86}]\Microsoft Contoso\Contoso\contosomail.EXE</ApplicationPath>
  <CommandLine>[{ProgramFilesX86}\Microsoft
Contoso\Contoso\contosomail.EXE" -c OEP.Note /m "%1"</CommandLine>
<PATHEnvironmentVariablePrefix />
  <DropTargetClassId />
<CanAcceptUrl>false</CanAcceptUrl>
  <FriendlyName />
<SaveUrl />
  <Extended>0</Extended>
</AppPath>
  <LegacyDisable>0</LegacyDisable>
</Extension>
  <SuppressionPolicy>2</SuppressionPolicy>
</Extensions>
   <DdeExec>
</AppPaths>
  <NoActivateHandler />
```
  <Application>contosomail</Application>
**COM** extensions subsystem allows an application registered to local COM servers. The mode can be:
  <Topic>ShellSystem</Topic>
- Integration
- Isolated
- Off
  <IfExec>[SHELLNOOP]</IfExec>
```XML
  <DdeCommand>[SetForeground][ShellNewDatabase "%1"]</DdeCommand>
<COM Mode="Isolated"/>
  </DdeExec>
```
  </ShellCommand>
**Virtual Kernel Objects**
  </ShellCommands>
```XML
  </ApplicationURLProtocol>
<Objects Enabled="false" />
  </URLProtocol>
```
  </Extension>
**Virtual Registry** sets a registry in the virtual registry within HKCU.
```XML
  </Extension>
<Registry Enabled="true">
  </URLProtocols>
<Include>
```
<Key Path="\REGISTRY\USER\[{AppVCurrentUserSID}]\Software\ABC">
**Software Clients**: Allows the app to register as an Email client, news
reader, media player and makes the app visible in the Set Program Access and
Computer Defaults UI. In most cases you should only need to enable and
disable it. There is also a control to enable and disable the email client
specifically if you want the other clients still enabled except for that
client.
<Value Type="REG_SZ" Name="Bar" Data="NewValue" />
```
</Key>
<SoftwareClients Enabled="true">
<Key Path="\REGISTRY\USER\[{AppVCurrentUserSID}]\Software\EmptyKey" />
  <ClientConfiguration EmailEnabled="false" />
</Include>
</SoftwareClients>
<Delete>
```
</Registry>
**AppPaths:** If an application for example contoso.exe is registered with
an apppath name of “myapp”, it allows you type “myapp” under the run menu
and it will open contoso.exe.
```
```
**Virtual File System**
<AppPaths Enabled="true">
```XML
<Extensions>
<FileSystem Enabled="true" />
<Extension Category="AppV.AppPath">
```
<AppPath>
**Virtual Fonts**
  <ApplicationId>[{ProgramFilesX86}]\Microsoft
Contoso\Contoso\contosomail.EXE</ApplicationId>
```XML
  <Name>contosomail.exe</Name>
<Fonts Enabled="false" />
  <ApplicationPath>[{ProgramFilesX86}]\Microsoft
Contoso\Contoso\contosomail.EXE</ApplicationPath>
```
  <PATHEnvironmentVariablePrefix />
**Virtual Environment Variables**
  <CanAcceptUrl>false</CanAcceptUrl>
```XML
  <SaveUrl />
<EnvironmentVariables Enabled="true">
</AppPath>
<Include>
</Extension>
<Variable Name="UserPath" Value="%path%;%UserProfile%" />
</Extensions>
<Variable Name="UserLib" Value="%UserProfile%\ABC" />
</AppPaths>
</Include>
```
<Delete>
**COM**: Allows an Application register Local COM servers. Mode can be Integration, Isolated or Off. When Isol.
<Variable Name="lib" />
```
</Delete>
<COM Mode="Isolated"/>
</EnvironmentVariables>
```
```
**Other Settings**:
**Virtual services**
In addition to Extensions, other subsystems can be enabled/disabled and
edited:
```XML
**Virtual Kernel Objects**:
<Services Enabled="false" />
**```**
```
<Objects Enabled="false" />
##### UserScripts
```
Use scripts to set up or alter the virtual environment. You can also execute scripts at the time of deployment or to clean up the environment after the application terminates. To see a sample script, refer to the user configuration file generated by the sequencer.
**Virtual Registry**: Used if you want to set a registry in the Virtual Registry within HKCU
The Scripts section below provides more information on the various triggers that can be used.
```
##### ManagingAuthority
<Registry Enabled="true">
Use ManagingAuthority when two versions of your package co-exist on the same machine, one deployed to App-V 4.6 and another deployed on App-V 5.0. To allow App-V vNext to take over App-V 4.6 extension points for the named package enter the following in the UserConfig file (where PackageName is the Package GUID in App-V 4.6:
<Include>
```XML
<Key Path="\REGISTRY\USER\[{AppVCurrentUserSID}]\Software\ABC">
<ManagingAuthority TakeoverExtensionPointsFrom46="true" PackageName="032630c0-b8e2-417c-acef-76fc5297fe81" />
<Value Type="REG_SZ" Name="Bar" Data="NewValue" />
```
 </Key>
  <Key Path="\REGISTRY\USER\[{AppVCurrentUserSID}]\Software\EmptyKey"
/>
 </Include>
<Delete>
  </Registry>
```
**Virtual File System**
```
      \<FileSystem Enabled="true" /\>
```
**Virtual Fonts**
```
      <Fonts Enabled="false" />
```
**Virtual Environment Variables**
```
<EnvironmentVariables Enabled="true">
<Include>
       <Variable Name="UserPath" Value="%path%;%UserProfile%" />
       <Variable Name="UserLib" Value="%UserProfile%\ABC" />
       </Include>
      <Delete>
       <Variable Name="lib" />
        </Delete>
        </EnvironmentVariables>
```
**Virtual services**
```
      <Services Enabled="false" />
```
1. **UserScripts** Scripts can be used to set up or alter the virtual
environment as well as execute scripts at time of deployment or removal
before an application executes, or they can be used to “clean up” the
environment after the application terminates. Please reference a sample User
configuration file that is output by the sequencer to see a sample script.
The Scripts section below provides more information on the various triggers
that can be used.
2. **ManagingAuthority** Can be used when 2 versions of your package are
co-existing on the same machine, one deployed to App-V 4.6 and the other
deployed on App-V 5.0. To Allow App-V vNext to take over App-V 4.6 extension
points for the named package enter the following in the UserConfig file
(where PackageName is the Package GUID in App-V 4.6:
- ```
<ManagingAuthority TakeoverExtensionPointsFrom46="true"
PackageName="032630c0-b8e2-417c-acef-76fc5297fe81" />
```
### Dynamic Deployment Configuration file