ClickOnce makes it easy to deploy WinForms applications. But while it has some versioning support, it has no built in way to deliver different versions to different people. This makes partial rollouts to a test audience difficult. David Cooksey shows how to add fine grained versioning to a ClickOnce deployment using an HttpHandler written with ASP.NET.
ClickOnce is a Microsoft technology released with version 2.0 of the .NET framework that allows for easy deployment and updating of .NET windows applications from within Visual Studio. Deployment functions by copying the application files to a file, ftp, or web location along with a manifest. The manifest is an XML file with a .application extension that contains a list of all included files as well as security-related information such as publisher identity. Each time a new version of the ClickOnce app is published, a new subdirectory is created and the updated files are placed there. All deployed versions of the program exist independently, which means that we need only identify the user and point them to the appropriate version of the application to control what version they receive.