Partilhar via


Arquivos de configuração do aplicativo

Um arquivo de configuração de aplicativo é um arquivo XML usado para controlar a vinculação de assembly. Ele pode redirecionar um aplicativo de usar uma versão de um assembly lado a lado para outra versão do mesmo assembly. Isso é chamado de configuração por aplicativo. Um arquivo de configuração de aplicativo se aplica somente a um manifesto de aplicativo específico e assemblies dependentes. Componentes isolados compilados com um manifesto de ISOLATIONAWARE_MANIFEST_RESOURCE_ID incorporado exigem um arquivo de configuração de aplicativo separado. Os manifestos gerenciados com CreateActCtx exigem um arquivo de configuração de aplicativo separado.

O redirecionamento especificado por um arquivo de configuração do aplicativo pode substituir as versões de assembly especificadas por manifestos do aplicativo e arquivos de configuração do editor. Por exemplo, se um arquivo de configuração do editor especificar que todas as referências a um assembly sejam redirecionadas da versão 1.0.0.0 para 1.1.0.0, um arquivo de configuração do aplicativo poderá ser usado para redirecionar um aplicativo específico para usar a versão 1.0.0.0. Um arquivo de configuração do aplicativo se aplica somente ao manifesto do aplicativo especificado e aos assemblies dependentes.

Para obter uma lista completa do esquema XML, consulte Application Configuration File Schema.

Os arquivos de configuração do aplicativo têm os elementos e atributos mostrados na tabela a seguir.

Elemento Atributos Necessário
de configuração Sim
janelas Sim
publisherPolicy Sim
aplicar Sim
tempo de execução Não
assemblyBinding Sim
sondagem Não
privatePath Sim
dependência Não
dependentesAssembleia Sim
assemblyIdentity Sim
tipo Sim
nome Sim
língua Não
processorArchitecture Sim
versão Sim
publicKeyToken Não
bindingRedirect Sim
versão antiga Sim
novoVersão Sim

Localização do ficheiro

Os arquivos de configuração do aplicativo devem ser instalados no mesmo local que o manifesto do aplicativo do aplicativo.

Sintaxe do nome do arquivo

O nome de um arquivo de configuração do aplicativo é o nome do executável do aplicativo seguido por .config.

Por exemplo, um arquivo de configuração de aplicativo que se refere a Example.exe ou Example.dll usaria a sintaxe de nome de arquivo mostrada no exemplo a seguir. Você pode omitir o campo para <ID do recurso> se instalar o arquivo de configuração como um arquivo separado ou se o ID do recurso for 1.

example.exe.<ID do recurso>.config

example.dll.<ID do recurso>.config

Elementos

Os nomes dos elementos e atributos diferenciam maiúsculas de minúsculas. Os valores dos elementos e atributos não diferenciam maiúsculas de minúsculas, exceto o valor do atributo type.

configuração

Um elemento container para o windows e runtime elementos de um arquivo de configuração do aplicativo. Necessário.

Mac OS

Inclui as partes do arquivo de configuração do aplicativo que se aplicam ao redirecionamento de assemblies Win32.

Observação

O autor de um aplicativo não deve incluir um arquivo de configuração com um subelemento windows como parte de seu aplicativo. Isso pode ser permitido se a única finalidade do arquivo de configuração for habilitar o funcionalidade de privatePath de um elemento de sondagem. O elemento de sondagem não está disponível em sistemas anteriores ao Windows Server 2008 R2 e ao Windows 7.

publisherPolicy

Especifica se a política de editor deve ser aplicada.

Este elemento tem os atributos mostrados na tabela a seguir.

Atributo Descrição
aplicar Um valor de "sim" aplica a política do editor. Esta é a configuração padrão. O valor "não" não se aplica à política do editor.

tempo de execução

Inclui as partes do arquivo de configuração do aplicativo que se aplicam ao redirecionamento de assemblies .Net.

assemblyBinding

Inclui as informações de redirecionamento para o aplicativo e o assembly afetado por esse arquivo de configuração do aplicativo. O primeiro subelemento de assemblyBinding deve ser um assemblyIdentity que identifica o aplicativo.

A partir do Windows Server 2008 R2 e do Windows 7, um elemento assemblyBinding pode incluir um subelemento de sondagem.

sondagem

Um subelemento opcional de um assemblyBinding elemento que estende a pesquisa de assemblies em diretórios adicionais. Os diretórios adicionais não precisam ser subdiretórios do diretório do assembly.

Observação

Este elemento não está disponível em sistemas anteriores ao Windows Server 2008 R2 e Windows 7 e só pode ser usado em um elemento windows.

Este elemento tem os atributos mostrados na tabela a seguir.

Atributo Descrição
privatePath Especifica os caminhos relativos de subdiretórios do diretório base do aplicativo que podem conter assemblies. Um máximo de nove caminhos de subdiretório pode ser especificado. Delimite cada caminho de subdiretório com um ponto-e-vírgula.

Você pode usar o especificador especial de pontos duplos em um caminho para indicar o diretório pai do diretório atual. Não mais do que dois níveis acima do diretório atual podem ser especificados usando pontos duplos. Não use pontos triplos. Por exemplo, um aplicativo usando o seguinte elemento de sondagem verifica diretórios adicionais para um assembly.

<probing privatePath="bin;..\bin2\subbin;bin3"/>

dependência

Um elemento container para pelo menos um dependentAssembly. Cada dependenteAssembly pode estar dentro de exatamente uma dependência. Este elemento não tem atributos. Opcional.

dependenteAssembleia

O primeiro subelemento deve ser um elemento assemblyIdentity que identifica o assembly lado a lado que está sendo redirecionado pelo arquivo de configuração do aplicativo. Um dependentAssembly não tem atributos.

assemblyIdentity

Como o primeiro subelemento de um elemento assemblyBinding, assemblyIdentity descreve e identifica exclusivamente um aplicativo. O arquivo de configuração do aplicativo redireciona a vinculação desse aplicativo para assemblies lado a lado. Por exemplo, o seguinte assemblyIdentity indica que o arquivo de configuração do aplicativo afeta a associação do aplicativo mysampleApp a assemblies lado a lado. As assembleias que estão sendo redirecionadas seriam identificadas em um dependenteAssembly.

<assemblyIdentity processorArchitecture="X86" name="Microsoft.Windows.mysampleApp" type="win32" version="1.0.0.0"/>

Como o primeiro subelemento de um elemento dependentAssembly, assemblyIdentity descreve um assembly lado a lado do qual o aplicativo depende. O arquivo de configuração do aplicativo reconfigura a identidade desse assembly necessário. Por exemplo, o seguinte assemblyIdentity e bindingRedirect reconfigura uma dependência em Microsoft.Windows.SampleAssembly da versão 2.0.0.0 para a versão 2.1.0.0.

<dependency>
      <dependentAssembly>
         <assemblyIdentity type="win32"
          name="Microsoft.Windows.SampleAssembly"
          processorArchitecture="x86"
          publicKeyToken="0000000000000000"/>
         <bindingRedirect oldVersion="2.0.0.0" newVersion="2.1.0.0"/>
      </dependentAssembly>
</dependency>

Observe que cada assemblyIdentity incluído em um de dependentAssembly deve corresponder exatamente ao assemblyIdentity no manifesto do assembly .

O elemento assemblyIdentity tem os seguintes atributos. Não tem subelementos.

Atributo Descrição
tipo O valor deve ser win32 (minúsculas). Necessário.
nome O atributo name identifica o aplicativo que está sendo afetado pelo arquivo de configuração do aplicativo ou pelo assembly que está sendo redirecionado. Use o seguinte formato para o nome: Organization.Division.Name. Necessário. Por exemplo: Microsoft.Windows.MysampleApp ou Microsoft.Windows.MysampleAsm.
língua Identifica o idioma. Opcional. Para um assemblyIdentity referindo-se a um assembly, se o assembly for específico do idioma, especifique o código do idioma DHTML. Se o assembly for para uso mundial (idioma neutro), defina o valor como "*".
processorArchitecture Especifica o processador que executa o aplicativo.
versão Especifica a versão do aplicativo ou assembly. Use a sintaxe da versão em quatro partes: mmmm.nnnn.oooo.pppp. Necessário.
publicKeyToken Para um assemblyIdentity referindo-se a um assembly, uma cadeia hexadecimal de 16 caracteres que representa os últimos 8 bytes do hash SHA-1 da chave pública sob a qual o assembly está assinado. A chave pública usada para assinar o catálogo deve ser de 2048 bits ou superior. Necessário para todas as montagens lado a lado compartilhadas.

vinculaçãoRedirecionamento

O elemento bindingRedirect contém informações de redirecionamento para a vinculação do assembly. Cada bindingRedirect deve ser incluída em exatamente um dependentAssembly. A sintaxe da versão em quatro partes da nova versão e da versão antiga deve especificar as mesmas versões principais e secundárias.

Este elemento tem os atributos mostrados na tabela a seguir.

Atributo Descrição
versão antiga Especifica a versão do assembly que está sendo substituída e redirecionada. Use a sintaxe da versão em quatro partes nnnnn.nnnnn.nnnnn.nnnnn. Especifique um intervalo de versões por um traço sem espaços. Por exemplo, 2.14.3.0 ou 2.14.3.0 2.16.0.0. Necessário.
novoVersão Especifica a versão do assembly de substituição. Use a sintaxe da versão em quatro partes nnnnn.nnnnn.nnnnn.nnnnn.

Comentários

Os arquivos de configuração do aplicativo não especificam arquivos.

Exemplo

<bindingRedirect oldVersion="1.0.0.0" newVersion="1.0.10.0"/>
<bindingRedirect oldVersion="1.0.50.2011-1.0.60.65535" newVersion="1.0.70.0"/>