Elemento <dependency> (Implementación ClickOnce)
Identifica la versión de la aplicación que se instalará, y la ubicación del manifiesto de aplicación.
<dependency>
<dependentAssembly
preRequisite
visible
dependencyType
codeBase
size
>
<assemblyIdentity
name
version
publicKeyToken
processorArchitecture
language
type
/>
<hash>
<dsig:Transforms>
<dsig:Transform
Algorithm
/>
</dsig:Transforms>
<dsig:DigestMethod />
<dsig:DigestValue>
</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
Elementos y atributos
Se requiere el elemento dependency. No tiene atributos. Un manifiesto de implementación puede tener varios elementos dependency.
El elemento dependency normalmente expresa las dependencias de la aplicación principal en los ensamblados contenidos dentro de una aplicación ClickOnce. Si su aplicación Main.exe utiliza un ensamblado denominado DotNetAssembly.dll, dicho ensamblado debe estar incluido en una sección de dependencia. Sin embargo, la dependencia también puede expresar otros tipos de dependencias, como las dependencias de una versión específica del Common Language Runtime, en un ensamblado en la caché global de ensamblados (GAC), o en un objeto COM. Debido a que se trata de una tecnología de implementación sin contacto, ClickOnce no puede iniciar la descarga e instalación de este tipo de dependencias, aunque puede evitar que la aplicación se ejecute si no existe una o varias de las dependencias especificadas.
dependentAssembly
Obligatorio. Este elemento contiene el elemento assemblyIdentity. En la siguiente tabla se muestran los atributos admitidos por dependentAssembly.
Atributo |
Descripción |
---|---|
preRequisite |
Opcional. Especifica que este ensamblado ya debería existir en la GAC. Los valores válidos son true y false. Si es true, y el ensamblado especificado no existe en la GAC, la aplicación no se ejecuta. |
visible |
Opcional. Identifica la identidad de la aplicación de nivel superior, incluida sus dependencias. Se utiliza internamente por ClickOnce para administrar el almacenamiento y la activación de la aplicación. |
dependencyType |
Obligatorio. La relación entre esta dependencia y la aplicación. Los valores válidos son:
|
codebase |
Opcional. Ruta de acceso completa al manifiesto de aplicación. |
size |
Opcional. Tamaño del manifiesto de aplicación en bytes. |
assemblyIdentity
Obligatorio. Este elemento es secundario del elemento dependentAssembly. El contenido de assemblyIdentity debe ser igual al que se describe en el manifiesto de aplicación de ClickOnce. En la siguiente tabla se muestran los atributos del elemento assemblyIdentity.
Atributo |
Descripción |
---|---|
Name |
Obligatorio. Identifica el nombre de la aplicación. |
Version |
Obligatorio. Especifica el número de versión de la aplicación, en el siguiente formato: major.minor.build.revision |
publicKeyToken |
Obligatorio. Especifica una cadena hexadecimal de 16 caracteres que representa los últimos 8 bytes del valor hash SHA-1 de la clave pública bajo la que se firma la aplicación o el ensamblado. La clave pública que se utiliza para firmar debe ser de 2048 bits o mayor. |
processorArchitecture |
Obligatorio. Especifica el microprocesador. Los valores válidos son x86 para Windows de 32 bits e IA64 para Windows de 64 bits. |
Language |
Opcional. Identifica los códigos de idioma en dos partes del ensamblado. Por ejemplo, EN-US significa inglés de Estados Unidos. El valor predeterminado es neutral. Este elemento se encuentra en el espacio de nombres asmv2. |
type |
Opcional. Por razones de compatibilidad con versiones anteriores con la tecnología de instalación en paralelo de Windows. El único valor permitido es win32. |
hash
El elemento hash es un elemento secundario opcional del elemento file. El elemento hash no tiene atributos.
ClickOnce utiliza un valor hash algorítmico de todos los archivos de una aplicación como comprobación de seguridad para asegurarse de que no se modificó ninguno de los archivos después de la implementación. Si el elemento hash no está incluido, no se realizará esta comprobación. En consecuencia, no se recomienda omitir el elemento hash.
dsig:Transforms
El elemento dsig:Transforms es un elemento secundario necesario del elemento hash. El elemento dsig:Transforms no tiene atributos.
dsig:Transform
El elemento dsig:Transform es un elemento secundario necesario del elemento dsig:Transforms. En la siguiente tabla se muestran los atributos del elemento dsig:Transform.
Atributo |
Descripción |
---|---|
Algorithm |
Algoritmo que se utiliza para calcular la síntesis de este archivo. En la actualidad, el único valor utilizado por ClickOnce es urn:schemas-microsoft-com:HashTransforms.Identity. |
dsig:DigestMethod
El elemento dsig:DigestMethod es un elemento secundario necesario del elemento hash. En la siguiente tabla se muestran los atributos del elemento dsig:DigestMethod.
Atributo |
Descripción |
---|---|
Algorithm |
Algoritmo que se utiliza para calcular la síntesis de este archivo. En la actualidad, el único valor utilizado por ClickOnce es http://www.w3.org/2000/09/xmldsig#sha1. |
dsig:DigestValue
El elemento dsig:DigestValue es un elemento secundario necesario del elemento hash. El elemento dsig:DigestValue no tiene atributos. Su valor de texto es el valor hash calculado para el archivo especificado.
Comentarios
Generalmente, los manifiestos de implementación tienen un único elemento assemblyIdentity que identifica el nombre y la versión del manifiesto de aplicación.
Ejemplo
En el siguiente ejemplo de código se muestra un elemento dependency en un manifiesto de implementación ClickOnce.
<!-- Identify the assembly dependencies -->
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="MyApplication.exe" size="16384">
<assemblyIdentity name="MyApplication" version="0.0.0.0" cultural="neutral" processorArchitecture="msil" />
<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>YzXYZJAvj9pgAG3y8jXUjC7AtHg=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
En el siguiente ejemplo de código se especifica una dependencia de un ensamblado ya instalado en la GAC.
<dependency>
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
<assemblyIdentity name="GACAssembly" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
</dependentAssembly>
</dependency>
En el siguiente ejemplo de código se especifica una dependencia de una versión concreta del Common Language Runtime.
<dependency>
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
<assemblyIdentity name="Microsoft.Windows.CommonLanguageRuntime" version="2.0.50215.0" />
</dependentAssembly>
</dependency>
En el siguiente ejemplo de código se especifica una dependencia del sistema operativo.
<dependency>
<dependentOS supportUrl="https://www.microsoft.com" description="Microsoft Windows Operating System">
<osVersionInfo>
<os majorVersion="4" minorVersion="10" />
</osVersionInfo>
</dependentOS>
</dependency>