Elemento <dependência> (implantação do ClickOnce)

Identifica a versão do aplicativo a ser instalada e o local do manifesto do aplicativo.

Sintaxe


      <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 e atributos

O elemento dependency é obrigatório. Ele não tem atributos. Um manifesto de implantação pode ter vários elementos dependency.

O elemento dependency geralmente expressa dependências para o aplicativo principal em assemblies contidos em um aplicativo ClickOnce. Se seu aplicativo Main.exe consumir um assembly chamado DotNetAssembly.dll, esse assembly deverá ser listado em uma seção de dependência. No entanto, a dependência também pode expressar outros tipos de dependências, como dependências em uma versão específica do Common Language Runtime, em um assembly no cache de assembly global (GAC) ou em um objeto COM. Como é uma tecnologia de implantação sem toque, o ClickOnce não pode iniciar o download e a instalação desses tipos de dependências, mas impede que o aplicativo seja executado se uma ou mais das dependências especificadas não existirem.

dependentAssembly

Obrigatórios. Esse elemento contém o elemento assemblyIdentity. A tabela a seguir mostra os atributos para os quais dependentAssembly oferece suporte.

Atributo Descrição
preRequisite Opcional. Especifica que esse assembly já deve existir no GAC. Os valores válidos são true e false. Se true, e o assembly especificado não existir no GAC, o aplicativo não será executado.
visible Opcional. Identifica a identidade de aplicativo de nível superior, incluindo suas dependências. Usado internamente pelo ClickOnce para gerenciar o armazenamento e a ativação de aplicativos.
dependencyType Obrigatórios. A relação entre essa dependência e o aplicativo. Os valores válidos são:

- install. O componente representa uma instalação separada do aplicativo atual.
- preRequisite. O componente é exigido pelo aplicativo atual.
codebase Opcional. O caminho completo para o manifesto do aplicativo
size Opcional. O tamanho do manifesto do aplicativo, em bytes.

assemblyIdentity

Obrigatórios. Este elemento é um filho do elemento dependentAssembly. O conteúdo de assemblyIdentity deve ser o mesmo descrito no manifesto do aplicativo ClickOnce. A tabela a seguir mostra os atributos para o elemento assemblyIdentity.

Atributo Descrição
Name Obrigatórios. Identifica o nome do aplicativo.
Version Obrigatórios. Especifica o número de versão do aplicativo, no seguinte formato: major.minor.build.revision
publicKeyToken Obrigatórios. Especifica uma cadeia de caracteres hexadecimal de 16 caracteres que representa os últimos 8 bytes do valor de hash SHA-1 da chave pública sob a qual o aplicativo ou assembly está assinado. A chave pública usada para assinar precisa ter 2048 bits ou mais.
processorArchitecture Obrigatórios. Especifica o microprocessador. Os valores válidos são x86 para Windows de 32 bits e IA64 para Windows de 64 bits.
Language Opcional. Identifica os dois códigos de idioma de duas partes do assembly. Por exemplo, EN-US, que significa inglês (EUA). O padrão é neutral. Esse elemento está no namespace asmv2.
type Opcional. Para compatibilidade com as versões anteriores da tecnologia de instalação lado a lado do Windows. O único valor permitido é win32.

hash

O elemento hash é um filho opcional do elemento file. O elemento hash não tem atributos.

O ClickOnce usa um hash algorítmico de todos os arquivos em um aplicativo como uma verificação de segurança, para garantir que nenhum dos arquivos tenha sido alterado após a implantação. Se o elemento hash não estiver incluído, essa verificação não será executada. Portanto, não é recomendável omitir o elemento hash.

dsig:Transforms

O elemento dsig:Transforms é um filho obrigatório do elemento hash. O elemento dsig:Transforms não tem atributos.

dsig:Transform

O elemento dsig:Transform é um filho obrigatório do elemento dsig:Transforms. A tabela a seguir mostra os atributos do elemento dsig:Transform.

Atributo Descrição
Algorithm O algoritmo usado para calcular o resumo desse arquivo. Atualmente, o único valor usado pelo ClickOnce é urn:schemas-microsoft-com:HashTransforms.Identity.

dsig:DigestMethod

O elemento dsig:DigestMethod é um filho obrigatório do elemento hash. A tabela a seguir mostra os atributos do elemento dsig:DigestMethod.

Atributo Descrição
Algorithm O algoritmo usado para calcular o resumo desse arquivo. Atualmente, o único valor usado pelo ClickOnce é http://www.w3.org/2000/09/xmldsig#sha1.

dsig:DigestValue

O elemento dsig:DigestValue é um filho obrigatório do elemento hash. O elemento dsig:DigestValue não tem atributos. O valor de texto dele é o hash computado para o arquivo especificado.

Comentários

Os manifestos de implantação normalmente têm um único elemento assemblyIdentity que identifica o nome e a versão do manifesto do aplicativo.

Exemplo 1

O exemplo de código a seguir mostra um elemento dependency em um manifesto de implantação do 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>

Exemplo 2

O exemplo de código a seguir especifica uma dependência em um assembly já instalado no GAC.

<dependency>
  <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
    <assemblyIdentity name="GACAssembly" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
  </dependentAssembly>
</dependency>

Exemplo 3

O exemplo de código a seguir especifica uma dependência em uma versão específica do Common Language Runtime.

<dependency>
  <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
    <assemblyIdentity name="Microsoft.Windows.CommonLanguageRuntime" version="2.0.50215.0" />
  </dependentAssembly>
</dependency>

Exemplo 4

O exemplo de código a seguir especifica uma dependência do sistema operacional.

<dependency>
   <dependentOS supportUrl="http://www.microsoft.com" description="Microsoft Windows Operating System">
      <osVersionInfo>
         <os majorVersion="4" minorVersion="10" />
      </osVersionInfo>
   </dependentOS>
</dependency>

Confira também