I was recently asked a question about Unified Service Desk! This time it was how to use customization files. In this post I will answer that question.
Customization files can be used to push custom hosted controls (etc) out to the desktop without needing to “manually” copy files to the programs directory.
The process is quite simple.
First let’s consider what happens when we create a customization file. Normally you copy any custom dll or executable files to the programs directory of Unified Service Desk. This can be quite a pain! As you may need to request system admins to copy the files for you. Plus your users may need local admin permissions to complete the copy. And ensuring the correct versions of custom files are installed in the programs directory creates a new “unnecessary” admin task.
A much cleaner solution is to use customization files. Basically your changes are included in your USD configuration, by way of a zip file. These are cached down and extracted as the USD client loads. The files are placed in AppData.
Typically your directory will be something like “c:\Users\<>\AppData\Local\Microsoft\UnifiedServiceDesk\<>\<<GUID!>>\files”. An example of one of mine is shown below.
The steps in creating a customizations file are …
- Zip the files.
- Load them into you USD configuration.
Step One – Zip the files
Copy any custom files to a suitable location. And also create an xml file called [Content_Types].xml. An example of this file is shown below. (You can create this using notepad or something!)
<?xml version="1.0" encoding="UTF-8"?> -<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"> <Default ContentType="application/zip" Extension="xml"/> <Default ContentType="application/zip" Extension="zip"/> <Default ContentType="application/zip" Extension="css"/> <Default ContentType="application/zip" Extension="htm"/> <Default ContentType="application/zip" Extension="gif"/> <Default ContentType="application/zip" Extension="dll"/> </Types>
This file will define the types of files that are going to be included in the customization.zip file.
Now select the content_types file and your custom controls and create a zip file.
Step Two – Upload the Customization file into your config
Now in USD select the customization files option.
I have shown one example for a customization file in USD below. Your screen will probably look slightly different to mine! As I have customized by form!
Basically you give your file a name, version and optionally enter a description. You can then attach the zip file.
I have shown my version of the customization file form for a reason, as this will help to highlight a couple of things. IF you are using USD configurations don’t forget to add the customization file into the required configurations. (I say this as this is a step I always seem to forget!)
Secondly I wanted to point out that attaching the file is simply creating a note with an attachment. You shouldn’t directly amend this note record! But it is worth being aware of that a note is used. As the notes entity is not included in the uii schema we use with the configuration migration tool to move USD configurations from one organisation to another. Meaning you’ll probably need to upload the customizations file in each of your organisations!
After creating the customizations file your custom controls will be downloaded and extracted automatically when USD loads.
Hopefully this short post has answered the question I received on how to use customization files. Enjoy.
8 thoughts on “USD – Customization Files”
Neil, What I could see is that as you mentioned the files or the zip folder got copied to the “C:\Users\<>\AppData\Local\Microsoft\UnifiedServiceDesk\<>\<>” folder. But for USD to work intact with these files we need to get these files copied to USD installed folder (something like “C:\Program Files\Microsoft Dynamics CRM USD\USD”) and get it unzipped? Am I missing anything here?
Appreciate your response.
You aren’t missing anything. USD will look for these files in appData!
Normally you would copy them direct into the programs directory. But with this approach it extracts them to appData and will grab them from there. It can’t use the programs directory as users commonly wouldn’t have local admin rights and therefore a direct copy to this wouldn’t work.
Usd will look for files in the appData directory and programs directory.
Hope this helps.
I was working with customization files and it works fine for a dll 😉
But I want to change the intial splash login image and I want to send a new image and a new xaml with this system.
Currently I have to copy manually in every computer the CustomerSplashStyles.xaml file and the image that I want to prompt instead the classical “Unified Service Desk” of the default Microsoft version.
Do you know if I can use the customization files system in USD to include this modification?
Thank you very much!!
I have tested this!
I can not deploy splash screen with customisation. (Shame.)
Unified service desk folder at the appdata local is not getting created with the custom files extracted , what will be the issue here ?
There could be several reasons and hard for me to be sure. But some things to check …
If you have ClientCacheVersionNumber defined, make sure you have increased the version number. (As USD will need to know that the changes need to be cached.)
If you are using configurations make sure the customizations.zip entry in customizations has been added to your configuration.
Check that your users have write access on the appdata location.
Double check that your contenttypes.xml is included in the zip file and that its format is correct.
I made a mistake once that my customizations.zip file had an unwanted folder. Make sure that isn’t the case! Open your zip file and confirm it looks as you’d expect.
Is it possible to zip a folder of images and upload in USD?
You may need to alter the content types file, as you would need to add the extension of the images. (e.g. jpg etc.)
I doubt it would actually do a folder. By that I mean I wouldn’t expect the extraction to navigate a folder structure. So all of the images may need to be in the same directory as your other files to be extracted. Such as the dlls etc.