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>

Consulte también