.net – Deploying a ClickOnce application to multiple servers

clickoncedeploymentmsbuildnet

We're looking at using ClickOnce deployment as a means of distributing our application. However, due to problems with bandwidth, we would need to deploy the application to multiple servers on the network rather than just one.

I work for a bank and am wanting to roll out a WPF client to all of our branches, but the branch network is too slow to have the application check a central server each day for updates, although we do want it to check each time the application is run. Each branch has their own server, so I'd like to be able to deploy the client to these branch servers rather than a server here in the main office.

Is this possible to do with ClickOnce? Would I have to use the command line to do this with MSBuild or is it achievable to do this from within a TFS Build project?

Best Answer

I have built a commercial product that is distributed over the Internet using ClickOnce. It is distributed from a single server, though, not multiple servers as in your scenario.

I'd say that what you want to do can be done. The problem is that the application will need to know which branch server to check for updates, and the manifest will have to have the deployment URL (on the local branch server) embedded in it. It therefore seems that you'll have to do a separate build for each branch server. It is probably easy to automate using MSBuild, but I have no experience with that.

A useful reference is Smart Client Deployment with ClickOnce by Brian Noyes.

Related Topic