I’ve been doing some custom hosted control work for the Unified Service Desk lately and wanted to implement the ability to have my controls download automatically on any new deployment without having to copy them over.
The benefits of this approach is that you are not putting your files into your main install directory (and potentially corrupting your USD install) but rather deploying them to your App/Local Data folder where they will be automatically downloaded.
Neil Parkhurst does a great job on the walkthrough there – https://neilparkhurst.com/2017/08/01/usd-customization-files/ – so I’m not going to take away from that.
What I do want to highlight are some other issues I ran into when trying to get things to deploy;
- If your zip file is more than 5MB you are going to need to increase your file upload limits before being able to upload your file.
- If you are deploying a development build (i.e., you have pdb files) make sure to include them in your XML file.
- Don’t worry about .dll.config extensions, the USD sees them as .config so don’t put “dll.config”, “config” will do nicely.
- Keep your extensions to what is in your files (not sure if this really matters, but it keeps it clean).
As an added bonus, I was able to also deploy some additional .NET assemblies into this deployment model that would not normally be on a user’s machine but were needed for my components to run (but not always prebuilt at run-time).
The last piece of advice, the USD uses a number of common components you might be using (i.e., Newtonsoft) so ensure you are using their dlls and not the latest. I spent a number of hours trying to track down failures when the USD would stop opening and this ended up being the culprit.