ClickOnce Deployment Architecture

Retired Content

This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies.
This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
To create client business applications using current Microsoft technologies, see patterns & practices' Prism.

ClickOnce handles each published version of an application as an atomic unit. Publication consists of the deployment manifest, the application manifest, and all the application files for that version. The published version is specified in the deployment manifest, and each deployment manifest refers to a single application manifest and its associated collection of application files.

The client computer must have the .NET Framework installed before it can participate in ClickOnce deployment. The .NET Framework 2.0, 3.0, and 3.5 use the same Common Language Runtime version (2.0). Therefore, if your deployment is targeting one of those versions, the client must have the same or a later version installed. If your deployment is targeting the .NET Framework 4.0 Client Profile or .NET Framework 4.0, the client must have the .NET Framework 4.0 Client Profile or .NET Framework 4.0 installed. The following table describes these deployment requirements.

Target .NET Framework version

Required version on the client

.NET Framework 2.0

.NET Framework 2.0, 3.0, or 3.5

.NET Framework 3.0

.NET Framework 3.0 or 3.5

.NET Framework 3.5

.NET Framework 3.5

.NET Framework 4.0 Client Profile

.NET Framework 4.0 Client Profile

.NET Framework 4.0

.NET Framework 4.0


The .NET Framework can be deployed in a variety of ways, including Windows Update, Microsoft Systems Management Server, or the ClickOnce bootstrapper (the Setup.exe file). The only specific platform requirement on the server side is the ability to return the manifests and application files with the appropriate MIME types.

To understand where everything goes in a ClickOnce deployment, it is perhaps easiest to describe the steps of a deployment and update from an architecture view:

  1. When a ClickOnce application is first published, the files are placed on the deployment server and the deployment manifest refers to the most recently published version. At this point, no changes have been made to the client computer (see Figure11).

    Ff699204.215ac95e-4131-4143-9467-4c738f8d7d62(en-us,PandP.10).png

    Figure 1

    After publishing, before deployment
  2. After the user clicks a link to the deployment manifest (or the user runs the bootstrapper, which calls the deployment manifest), the initial deployment of the application occurs, and the application files are copied to the client computer under the user's profile.
  3. If the application is deployed as an installed application (available online and offline), a Start menu shortcut is added and an item is added to Programs and Features. The application launches, and the user interacts with the application as a locally installed smart client application (see Figure 2). The user can continue to use the application by launching it from the Start menu shortcut or from a desktop shortcut.

    Ff699204.3f20761f-87e0-4e7e-b9bd-db3f281c694c(en-us,PandP.10).png

    Figure 2

    After initial ClickOnce deployment
  4. At some point in the future, an update is published to the deployment server. The earlier version of the application might or might not be removed from the deployment server at that time. The default deployment manifest for the application is updated to point to the new version of the application (see Figure 3).

    Ff699204.bd5aa8cf-3d1c-4c9a-a30f-855980239ac4(en-us,PandP.10).png

    Figure 3

    New version published to the server
  5. You can configure the ClickOnce update settings so that the next time the user launches the application on the client computer, the ClickOnce runtime on the client computer detects that a new version is available on the server. A new version is created under the user's profile on the client computer, and the application files for the new version are copied into that folder. If a file from the previous version is unchanged between versions (determined by a hash of the file placed in the application manifest), it is copied locally on the client computer from the previous version's cache folder. If a file has changed or is new, it is downloaded from the server and cached in the new version's cache folder under the user's profile. The Start menu shortcut is updated, and the new version of the application is started on the client computer (see Figure 4).

    Ff699204.9c6f2d09-1cf8-43a1-97b3-1f93bf4bdc21(en-us,PandP.10).png

    Figure 4

    Update detected and deployed to client computer

    Note that the previous version is not removed from the client computer when a new version is installed. This enables the user to roll back to the previous version by using the Control Panel Programs option if the Minimum Required Version property is not set in the new version by the publisher. ClickOnce keeps only one previous version cached on the client computer for installed applications.


Show: