Deployment Activities

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.

You can use Visual Studio to publish an application in a single step. When Visual Studio publishes an application, it includes project files and references that have been configured as application files on the Publish tab of the project Properties window. By default, this includes the application executable file, the configuration file, any referenced libraries, and any project files that have the Build Action property set to Content. This means that if your application depends on other libraries or files that it dynamically loads, they will not be published with your application if they are not part of your project. For example, with Composite UI Application Block applications, you usually do not reference modules that will deploy with the shell because the shell is designed to be decoupled from the modules that will load into it at run time. As a result, you need a way to include your modules and any other dynamic dependencies into the ClickOnce publication.

The .NET Framework 4.0 SDK includes the manifest tools MageUI.exe (a Windows-based UI application) and Mage.exe (a command line tool). These tools are collectively referred to as Mage. With these tools, you can create manifests or modify manifests after they are published from Visual Studio. With Mage, you can access most, but not all, of the content of a manifest. Mage requires you to sign the deployment and application manifests separately.

The Manifest Manager Utility is a custom utility that uses a more automated approach to support the scenarios in this topic. This utility uses the API exposed through the Microsoft.Build.Tasks.Deployment namespace. You can consult the code for the Manifest Manager Utility in this package as an example of how to use that API to obtain low level and full access to the manifest manipulation API. This utility enables you to sign the deployment and application manifests in one step.

The key classes used in this utility are the ManifestReader, ManifestWriter, DeploymentManifest, ApplicationManifest, and X509Certificate2 classes.

This section describes activities that developers perform when they use ClickOnce to publish and deploy smart client applications. Where appropriate, the activity descriptions contain both the Manifest Manager Utility (automated) procedures and the Mage (manual) procedures so that you can see the steps that the utility automates.

To use ClickOnce deployment, you must have an application that is ready to deploy. The following how-to topics use the Bank Branch Client reference implementation as the application that is being deployed: