Manifiesto de aplicación ClickOnce

Un manifiesto de aplicación ClickOnce es un archivo XML que describe una aplicación que se implementa mediante ClickOnce.

Los manifiestos de implementación de ClickOnce tienen los siguientes elementos y atributos.

Elemento Descripción Atributos
Elemento <assembly> Necesario. Elemento de nivel superior. manifestVersion
Elemento <assemblyIdentity> Necesario. Identifica el ensamblado principal de la aplicación ClickOnce. name

version

publicKeyToken

processorArchitecture

language
Elemento <trustInfo> Identifica los requisitos de seguridad de la aplicación. None
Elemento <entryPoint> Necesario. Identifica el punto de entrada del código de aplicación. name
Elemento <dependency> Necesario. Identifica cada dependencia necesaria para que se ejecute la aplicación. Identifica opcionalmente los ensamblados que se tienen que preinstalar. None
Elemento <file> Opcional. Identifica cada archivo que no es de ensamblado y que se usa por la aplicación. Puede incluir datos de aislamiento del modelo de objetos componentes (COM) asociados al archivo. name

size

group

optional

writeableType
Elemento <fileAssociation> Opcional. Identifica una extensión de archivo que se va a asociar a la aplicación. extension

description

progid

defaultIcon

Comentarios

El archivo de manifiesto de aplicación ClickOnce identifica una aplicación implementada mediante ClickOnce. Para obtener más información sobre ClickOnce, consulte Seguridad e implementación ClickOnce.

Ubicación del archivo

Un manifiesto de aplicación ClickOnce es específico de una sola versión de una implementación. Por este motivo, deben almacenarse por separado de los manifiestos de implementación. Lo que suele hacerse es guardarlos en un subdirectorio con nombre después de la versión asociada.

El manifiesto de aplicación siempre debe firmarse antes de la implementación. Si cambia manualmente un manifiesto de aplicación, debe usar mage.exe para volver a firmar el manifiesto de aplicación, actualizar el manifiesto de implementación y, a continuación, volver a firmar el manifiesto de implementación. Para más información, consulte Tutorial: Implementación manual de una aplicación ClickOnce.

Sintaxis de los nombres de archivo

El nombre de un archivo de manifiesto de aplicación ClickOnce debe ser el nombre completo y la extensión de la aplicación según se identifica en el elemento assemblyIdentity, seguido por la extensión .manifest. Por ejemplo, un manifiesto de aplicación que hace referencia a la aplicación Example.exe usaría la siguiente sintaxis de nombre de archivo.

example.exe.manifest

Ejemplo

En el ejemplo de código siguiente se muestra un manifiesto de aplicación para una aplicación ClickOnce.

<?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="http://www.w3.org/2000/09/xmldsig#" 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="http://www.w3.org/2001/XMLSchema-instance" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1">
  <asmv1:assemblyIdentity name="My Application Deployment.exe" version="1.0.0.0" publicKeyToken="43cb1e8e7a352766" language="neutral" processorArchitecture="x86" type="win32" />
  <application />
  <entryPoint>
    <assemblyIdentity name="MyApplication" version="1.0.0.0" language="neutral" processorArchitecture="x86" />
    <commandLine file="MyApplication.exe" parameters="" />
  </entryPoint>
  <trustInfo>
    <security>
      <applicationRequestMinimum>
        <PermissionSet Unrestricted="true" ID="Custom" SameSite="site" />
        <defaultAssemblyRequest permissionSetReference="Custom" />
      </applicationRequestMinimum>
      <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" />
      </requestedPrivileges>
    </security>
  </trustInfo>
  <dependency>
    <dependentOS>
      <osVersionInfo>
        <os majorVersion="4" minorVersion="10" buildNumber="0" servicePackMajor="0" />
      </osVersionInfo>
    </dependentOS>
  </dependency>
  <dependency>
    <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
      <assemblyIdentity name="Microsoft.Windows.CommonLanguageRuntime" version="4.0.20506.0" />
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="MyApplication.exe" size="4096">
      <assemblyIdentity name="MyApplication" version="1.0.0.0" language="neutral" processorArchitecture="x86" />
      <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>DpTW7RzS9IeT/RBSLj54vfTEzNg=</dsig:DigestValue>
      </hash>
    </dependentAssembly>
  </dependency>
<publisherIdentity name="CN=DOMAINCONTROLLER\UserMe" issuerKeyHash="18312a18a21b215ecf4cdb20f5a0e0b0dd263c08" /><Signature Id="StrongNameSignature" xmlns="http://www.w3.org/2000/09/xmldsig#">
...
</Signature></r:issuer></r:license></msrel:RelData></KeyInfo></Signature></asmv1:assembly>

Consulte también