I’ve been asked this question a few times now how does the custom deployment and user configuration file apply when the App-V 5 client runs a "Sync-AppvPublishingServer"?
For information about our Configuration files have a look at the following link:
The package that I’m going to be working with to show the use of custom configuration files is Putty and the share location is below. What you will notice if your using custom configuration files then a best practice is to create custom version e.g. _Custom.xml so that you always have the default configuration to revert back to.
To apply a custom configuration file, you have to apply it on the Management Server, for the deployment configuration you have to use the "Edit Default Configuration" shown below:
From here you can then select the “Advanced” tab and “Import and Overwrite this Configuration” which provides you an explorer shell where you can specify your custom deployment configuration file.
Once the configuration has been saved what happens next? The App-V 5 Management Server writes the custom configuration to the App-V SQL Database.
To see where the data is written to for the package putty, you need to find the PackageVersionID which is specified in the "PackageVersions" table and you can see below it has an ID of 15.
Now we have the ID, if you open the "PackageEntitlements" table and find the ID 15 in the PackageVersionID table you will in this instance the “Sid” is NULL which means a custom deployment configuration file has been specified.
In the "UserConfigurationContent" column you will then see the custom deployment configuration xml has been written to the database directly. If you copy the text and paste it into notepad you will see the custom configuration.
What happens from here? The App-V Management Server is now waiting for a change to occur so that it can update the PublishingMetadata.xml located:
Once the metadata has been updated it will reference the DeploymentConfiguration ConfigurationID 16 which can be seen in the "PackageEntitlements" table seen previously.
Now to the App-V 5 Client, when you preview the Publishing Server data from the within your browser you will see the configuration for your package and specifically the DeploymentConfiguration for Putty with a Path to a policies string.
Note: Make sure your completing the query to publishing server correctly, please review:
So what’s the policies string? Is it a link to the deploymentconfig_custom.xml in the file share?
Well the answer is no as already discussed the custom configuration is stored in the SQL database and then referenced in the PublishingMetadata.xml but what does the client do with this information?
You can actually add the path to your browser path as per the below which will show the information stored in the SQL database.
Surely the client isn’t going all the way back to the SQL database to get this information?
If you log onto your publishing server or browse to c$ via UNC there is the following path which holds the information from SQL.
So when your querying the publishing server from the client what its doing is showing the xml data from the folder above.
I’ve talked about the deployment configuration which affects all users, the same applies for user configuration files except the "Sid" in the "PackageEntitlements" table is populated and the "UserConfigurationContent" only holds user configuration section.
That's how our policies key is populated and functions with the App-V 5 Client. Hope this helps in understanding what the policies path is when you query the publishing server, so when the App-V 5 client runs a "Sync-AppvPublishingServer" the XML above is used when adding or publishing the package.
David Falkus | Senior Premier Field Engineer | Application Virtualization, PowerShell, Windows Shell