ClickOnce Deployment Manifest

A deployment manifest is an XML file that describes a ClickOnce deployment, including the identification of the current ClickOnce application version to deploy.

Deployment manifests have the following elements and attributes.

Element Description Attributes

<assembly> Element

Required. Top-level element.

manifestVersion

<assemblyIdentity> Element

Required. Identifies the application manifest for the ClickOnce application.

name

version

publicKeyToken

processorArchitecture

culture

<description> Element

Required. Identifies application information used to create a shell presence and the Add or Remove Programs item in Control Panel.

publisher

product

supportUrl

<deployment> Element

Optional. Identifies the attributes used for the deployment of updates and exposure to the system.

isRequiredUpdate

<dependency> Element

Required. Identifies the version of the application to install for the deployment and the location of the application manifest.

None

<Signature> Element

Optional. Contains the necessary information to digitally sign this deployment manifest.

none

Remarks

The deployment manifest file identifies a ClickOnce application deployment, including the current version and other deployment settings. It references the application manifest, which describes the current version of the application and all of the files contained within the deployment.

For more information, see ClickOnce Deployment Overview.

File Location

The deployment manifest file references the correct application manifest for the current version of the application. When you make a new version of an application deployment available, you must update the deployment manifest to refer to the new application manifest.

The deployment manifest file must be strongly named and can also contain certificates for publisher validation.

File Name Syntax

The name of a deployment manifest file must end with the .application extension.

Examples

The following code examples illustrate deployment manifests for two common deployment types.

The first example illustrates a deployment manifest for launching a ClickOnce application. A ClickOnce application that is launched is not added to the Windows Start menu or the Add or Remove Programs, and always uses the latest version.

<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <assemblyIdentity name="ValidateChildrenWithConstraints.app" version="1.0.0.0" publicKeyToken="6c3d632f25ac9964" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
  <description asmv2:publisher="MS" asmv2:product="Validate With Constraints" xmlns="urn:schemas-microsoft-com:asm.v1" />
  <deployment install="false" minimumRequiredVersion="1.0.0.0" trustURLParameters="true">
    <deploymentProvider codebase="https://localhost/ValidateChildrenWithConstraints.application" />
  </deployment>
  <dependency>
    <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Debug\ValidateChildrenWithConstraints.exe.manifest" size="5912">
      <assemblyIdentity name="ValidateChildrenWithConstraints.exe" version="1.0.0.0" publicKeyToken="6c3d632f25ac9964" language="neutral" processorArchitecture="msil" type="win32" />
      <hash>
        <dsig:Transforms>
          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
        </dsig:Transforms>
        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
        <dsig:DigestValue>RokPpIeGiPcO/+UUi5thetccDTc=</dsig:DigestValue>
      </hash>
    </dependentAssembly>
  </dependency>

  <Signature Id="StrongNameSignature" xmlns="http://www.w3.org/2000/09/xmldsig#">
    ...
  </Signature>
</asmv1:assembly>

The second example illustrates a deployment manifest for an installed ClickOnce application that checks for updates before the application runs. A ClickOnce application that is installed is added to the Windows Start menu and an Add or Remove Programs item is added to Control Panel. It also specifies a <deploymentProvider> tag, which describes an alternate location to poll for application updates.

<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <assemblyIdentity name="ValidateChildrenWithConstraints.app" version="1.0.0.0" publicKeyToken="6c3d632f25ac9964" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
  <description asmv2:publisher="MS" asmv2:product="Validate With Constraints" xmlns="urn:schemas-microsoft-com:asm.v1" />
  <deployment install="true" minimumRequiredVersion="1.0.0.0" trustURLParameters="true">
    <subscription>
      <update>
        <expiration maximumAge="2" unit="days" />
      </update>
    </subscription>
    <deploymentProvider codebase="https://localhost/ValidateChildrenWithConstraints.application" />
  </deployment>
  <dependency>
    <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Debug\ValidateChildrenWithConstraints.exe.manifest" size="5912">
      <assemblyIdentity name="ValidateChildrenWithConstraints.exe" version="1.0.0.0" publicKeyToken="6c3d632f25ac9964" language="neutral" processorArchitecture="msil" type="win32" />
      <hash>
        <dsig:Transforms>
          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
        </dsig:Transforms>
        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
        <dsig:DigestValue>RokPpIeGiPcO/+UUi5thetccDTc=</dsig:DigestValue>
      </hash>
    </dependentAssembly>
  </dependency>
  
  <Signature Id="StrongNameSignature" xmlns="http://www.w3.org/2000/09/xmldsig#">
    ...
  </Signature>
</asmv1:assembly>

See Also

Reference

<assembly> Element
<assemblyIdentity> Element
<description> Element
<deployment> Element
<dependency> Element
<Signature> Element