Manifiesto de aplicación ClickOnce
Un manifiesto de aplicación es un archivo XML que describe una aplicación que se implementa mediante ClickOnce.
Los manifiestos de aplicación presentan los elementos y atributos siguientes.
Elemento |
Descripción |
Atributos |
---|---|---|
Obligatorio. Elemento de nivel superior. |
manifestVersion |
|
Obligatorio. Identifica el ensamblado primario de la aplicación ClickOnce. |
name version publicKeyToken processorArchitecture language |
|
Identifica los requisitos de seguridad de la aplicación. |
Ninguno |
|
Obligatorio. Identifica el punto de entrada del código de aplicación. |
name |
|
Obligatorio. Identifica cada dependencia necesaria para que se ejecute la aplicación. Identifica opcionalmente ensamblados que necesitan preinstalarse. |
Ninguno |
|
Opcional. Identifica cada archivo nonassembly utilizado por la aplicación. Puede incluir los datos de aislamiento Componente Modelo de objetos (COM) asociados al archivo. |
name size group optional writeableType |
|
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 identifica una aplicación que se implementa mediante ClickOnce. Para obtener más información sobre ClickOnce, vea Seguridad e implementación ClickOnce.
Ubicación del archivo
Cada manifiesto de aplicación es específico de una única versión de una implementación. Por esta razón, los manifiestos de aplicación se deben almacenar de forma independiente con respecto a los manifiestos de implementación. La convención común consiste en colocar los manifiestos en un subdirectorio con el nombre de la versión asociada.
El manifiesto de aplicación siempre se debe firmar antes de la implementación. Si cambia un manifiesto de aplicación manualmente, debe utilizar mage.exe para firmar de nuevo el manifiesto de aplicación, actualizar el manifiesto de implementación y, a continuación, firmar de nuevo el manifiesto de implementación. Para obtener más información, vea Tutorial: Implementar manualmente una aplicación ClickOnce.
Sintaxis de los nombres de archivo
El nombre de un archivo de manifiesto de aplicación debe ser el nombre completo y la extensión de la aplicación, tal y como se identifica en el elemento assemblyIdentity, seguido de la extensión .manifest. Por ejemplo, un manifiesto de aplicación que hace referencia a la aplicación Example.exe utilizaría la sintaxis de nombre de archivo siguiente.
example.exe.manifest
Ejemplo
En el ejemplo de código siguiente se muestra el manifiesto de aplicación de 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>