Deploying WPF Applications with ClickOnce

ClickOnce is a Windows Presentation Foundation (WPF) or Windows Forms deployment mechanism that has been part of the .NET Framework since version 2.0. ClickOnce enables automatic deployment and update of WPF applications over the network from a deployment server. Composite WPF applications can use ClickOnce to get the shell, modules, and any other dependencies deployed to the client computer. The main challenge with composite applications is that ClickOnce does not easily address deploying dynamically loaded modules.

Deploying a WPF application with ClickOnce is a two-step process. First, you have to publish the application from Visual Studio, and then you can deploy it to client computers. Publishing the application generates two manifests (a deployment manifest and an application manifest), and it copies the application files to a publish directory. Deploying an application to a client computer simply requires clicking a link to the deployment manifest in the browser, and then ClickOnce on the client computer downloads the application files specified by the manifests and launches the application. If subsequent updates are published to the deployment server, ClickOnce can automatically detect those updates, download, and apply them.

When you publish a composite WPF application that has dynamically loaded modules, the shell project will typically not have project references to the dynamically loaded modules. As a result, the published ClickOnce application manifest does not include those module files either, and if you deploy the application using ClickOnce, the client computer will not get the module files. To address this, you must modify the application manifest to include the module files that are not referenced by the shell application project.

For more information about deploying WPF applications with ClickOnce, see the following topics:

Home page on MSDN | Community site