ClickOnce Application Manifest


The new home for Visual Studio documentation is Visual Studio 2017 Documentation on

The latest version of this topic can be found at ClickOnce Application Manifest.

A ClickOnce application manifest is an XML file that describes an application that is deployed using ClickOnce.

ClickOnce application manifests have the following elements and attributes.

<assembly> ElementRequired. Top-level element.manifestVersion
<assemblyIdentity> ElementRequired. Identifies the primary assembly of the ClickOnce




<trustInfo> ElementIdentifies the application security requirements.None
<entryPoint> ElementRequired. Identifies the application code entry
<dependency> ElementRequired. Identifies each dependency required for the application to run. Optionally identifies assemblies that need to be preinstalled.None
<file> ElementOptional. Identifies each nonassembly file that is used by the application. Can include Component Object Model (COM) isolation data associated with the




<fileAssociation> ElementOptional. Identifies a file extension to be associated with the application.extension




The ClickOnce application manifest file identifies an application deployed using ClickOnce. For more information about ClickOnce, see ClickOnce Security and Deployment.

A ClickOnce application manifest is specific to a single version of a deployment. For this reason, they should be stored separately from deployment manifests. The common convention is to place them in a subdirectory named after the associated version.

The application manifest always must be signed prior to deployment. If you change an application manifest manually, you must use mage.exe to re-sign the application manifest, update the deployment manifest, and then re-sign the deployment manifest. For more information, see Walkthrough: Manually Deploying a ClickOnce Application.

The name of a ClickOnce application manifest file should be the full name and extension of the application as identified in the assemblyIdentity element, followed by the extension .manifest. For example, an application manifest that refers to the Example.exe application would use the following file name syntax.


The following code example shows an application manifest for a ClickOnce application.

<?xml version="1.0" encoding="utf-8"?>  
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1">  
  <asmv1:assemblyIdentity name="My Application Deployment.exe" version="" publicKeyToken="43cb1e8e7a352766" language="neutral" processorArchitecture="x86" type="win32" />  
  <application />  
    <assemblyIdentity name="MyApplication" version="" language="neutral" processorArchitecture="x86" />  
    <commandLine file="MyApplication.exe" parameters="" />  
        <PermissionSet Unrestricted="true" ID="Custom" SameSite="site" />  
        <defaultAssemblyRequest permissionSetReference="Custom" />  
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">  
          UAC Manifest Options  
          If you want to change the Windows User Account Control level replace the   
          requestedExecutionLevel node with one of the following.  
        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />  
        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />  
        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />  
         If you want to utilize File and Registry Virtualization for backward   
         compatibility then delete the requestedExecutionLevel node.  
        <requestedExecutionLevel level="asInvoker" uiAccess="false" />  
        <os majorVersion="4" minorVersion="10" buildNumber="0" servicePackMajor="0" />  
    <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">  
      <assemblyIdentity name="Microsoft.Windows.CommonLanguageRuntime" version="4.0.20506.0" />  
    <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="MyApplication.exe" size="4096">  
      <assemblyIdentity name="MyApplication" version="" language="neutral" processorArchitecture="x86" />  
          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />  
        <dsig:DigestMethod Algorithm="" />  
<publisherIdentity name="CN=DOMAINCONTROLLER\UserMe" issuerKeyHash="18312a18a21b215ecf4cdb20f5a0e0b0dd263c08" /><Signature Id="StrongNameSignature" xmlns="">  

Publishing ClickOnce Applications