Elemento <dependency> (implementación ClickOnce)
Identifica la versión de la aplicación que se va a instalar y la ubicación del manifiesto de aplicación.
Sintaxis
<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
El elemento dependency
es obligatorio. No tiene atributos. Un manifiesto de implementación puede tener varios elementos dependency
.
Normalmente, el elemento dependency
expresa las dependencias de la aplicación principal en los ensamblados contenidos en una aplicación ClickOnce. Si la aplicación Main.exe consume un ensamblado denominado DotNetAssembly.dll, ese ensamblado debe aparecer en una sección de dependencias. Pero dependency también puede expresar otros tipos de dependencias, como las de una versión específica de Common Language Runtime, de un ensamblado de la caché global de ensamblados (GAC) o de un objeto COM. Como es una tecnología de implementación sin interacción, ClickOnce no puede iniciar la descarga e instalación de estos tipos de dependencias, pero impide que la aplicación se ejecute si no existen una o varias de las dependencias especificadas.
dependentAssembly
Necesario. Este elemento contiene el elemento assemblyIdentity
. En la tabla siguiente se muestra los atributos que admite dependentAssembly
.
Atributo | Descripción |
---|---|
preRequisite |
Opcional. Especifica que este ensamblado ya debe existir en la GAC. Los valores válidos son true y false . Si true , y el ensamblado especificado no existe en la GAC, la aplicación no se puede ejecutar. |
visible |
Opcional. Identifica la identidad de aplicación de nivel superior, incluidas sus dependencias. ClickOnce lo usa internamente para administrar el almacenamiento y la activación de la aplicación. |
dependencyType |
Necesario. Relación entre esta dependencia y la aplicación. Los valores válidos son: - install . El componente representa una instalación independiente de la aplicación actual.- preRequisite . La aplicación actual necesita el componente. |
codebase |
Opcional. Ruta de acceso completa al manifiesto de aplicación. |
size |
Opcional. Tamaño del manifiesto de aplicación, en bytes. |
assemblyIdentity
Necesario. Este elemento es un elemento secundario del elemento dependentAssembly
. El contenido de assemblyIdentity
debe ser el mismo que se describe en el manifiesto de aplicación de ClickOnce. En la tabla siguiente se muestra los atributos del elemento assemblyIdentity
.
Atributo | Descripción |
---|---|
Name |
Necesario. Identifica el nombre de la aplicación. |
Version |
Necesario. Especifica el número de versión de la aplicación, en el formato siguiente: major.minor.build.revision |
publicKeyToken |
Necesario. Especifica una cadena hexadecimal de 16 caracteres que representa los últimos 8 bytes del hash SHA-1 de la clave pública con la que se firma la aplicación o el ensamblado. La clave pública usada para la firma debe ser de 2048 bits o superior. |
processorArchitecture |
Necesario. Especifica el microprocesador. Los valores válidos son x86 para Windows de 32 bits y IA64 para Windows de 64 bits. |
Language |
Opcional. Identifica los códigos de idioma de dos partes del ensamblado. Por ejemplo, EN-US, que significa inglés (EE. UU.). El valor predeterminado es neutral . Este elemento está en el espacio de nombres asmv2 . |
type |
Opcional. Para la 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 usa un hash algorítmico de todos los archivos de una aplicación como comprobación de seguridad para asegurarse de que ninguno de los archivos se ha cambiado después de la implementación. Si el elemento hash
no está incluido, no se realizará esta comprobación. Por tanto, no se recomienda omitir el elemento hash
.
dsig:Transforms
El elemento dsig:Transforms
es un elemento secundario obligatorio del elemento hash
. El elemento dsig:Transforms
no tiene atributos.
dsig:Transform
El elemento dsig:Transform
es un elemento secundario obligatorio del elemento dsig:Transforms
. En la tabla siguiente se muestra los atributos del elemento dsig:Transform
.
Atributo | Descripción |
---|---|
Algorithm |
Algoritmo utilizado para calcular el hash de este archivo. Actualmente, el único valor usado por ClickOnce es urn:schemas-microsoft-com:HashTransforms.Identity . |
dsig:DigestMethod
El elemento dsig:DigestMethod
es un elemento secundario obligatorio del elemento hash
. En la tabla siguiente se muestra los atributos del elemento dsig:DigestMethod
.
Atributo | Descripción |
---|---|
Algorithm |
Algoritmo utilizado para calcular el hash de este archivo. Actualmente, el único valor usado por ClickOnce es http://www.w3.org/2000/09/xmldsig#sha1 . |
dsig:DigestValue
El elemento dsig:DigestValue
es un elemento secundario obligatorio del elemento hash
. El elemento dsig:DigestValue
no tiene atributos. Su valor de texto es el hash calculado para el archivo especificado.
Comentarios
Los manifiestos de implementación suelen tener un único elemento assemblyIdentity
que identifica el nombre y la versión del manifiesto de aplicación.
Ejemplo 1
En el ejemplo de código siguiente se muestra un elemento dependency
en un manifiesto de implementación de 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>
Ejemplo 2
En el ejemplo de código siguiente 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>
Ejemplo 3
En el ejemplo de código siguiente se especifica una dependencia de una versión específica de Common Language Runtime.
<dependency>
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
<assemblyIdentity name="Microsoft.Windows.CommonLanguageRuntime" version="2.0.50215.0" />
</dependentAssembly>
</dependency>
Ejemplo 4
En el ejemplo de código siguiente se especifica una dependencia del sistema operativo.
<dependency>
<dependentOS supportUrl="http://www.microsoft.com" description="Microsoft Windows Operating System">
<osVersionInfo>
<os majorVersion="4" minorVersion="10" />
</osVersionInfo>
</dependentOS>
</dependency>