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>