Compartilhar via


Etapa 1: Examinando os arquivos de configuração

Comportamento de ligação de assembly pode ser configurado em diferentes níveis com base em três arquivos XML:

  • Arquivo de configuração do aplicativo.

  • Arquivo de diretiva de publicador.

  • Arquivo de configuração da computador.

Esses arquivos seguem a mesma sintaxe e fornecem informações, sistema autônomo ligação redirecionamentos, o local do código e modos de ligação para assemblies específicos.Cada arquivo de configuração pode conter um elemento <assemblybinding> que redireciona o processo de vinculação.Os elementos filho do elemento <assemblybinding> incluem o elemento <dependentassembly>.Os filhos de elemento <dependentassembly> incluem o elemento <assemblyidentity>, the elemento <bindingredirect>, and the elemento <codebase>.

Observação:

Informações de configuração podem ser encontradas nos arquivos de configuração de três; nem todos os elementos são válido em todos os arquivos de configuração.Por exemplo, informações de caminho particular e modo de ligação só é possível no arquivo de configuração do aplicativo.Para obter uma lista completa das informações que estão contidas em cada arquivo, consulte Configurando aplicativos.

Application Configuration File

Primeiro, o common linguagem tempo de execução verifica o arquivo de configuração do aplicativo para obter informações que substitui as informações de versão armazenadas no manifesto do assembly de chamada.O arquivo de configuração do aplicativo pode ser implantado com um aplicativo, mas não é necessário para execução de aplicativos.Normalmente, a recuperação desse arquivo é quase instantânea, mas em situações em que o base de aplicativo é em um computador remoto, sistema autônomo em um cenário baseado na Web do Internet Explorer, o arquivo de configuração deve ser baixado.

Para executáveis de cliente, o arquivo de configuração de aplicativo reside no mesmo diretório do executável do aplicativo e tem o mesmo nome base que o executável com uma extensão .config.Por exemplo, o arquivo de configuração para C:\programa Files\Myapp\Myapp.exe é C:\programa Files\Myapp\Myapp.exe.config.Em um cenário baseado em navegador, o arquivo HTML deve usar o <link> elemento explicitamente apontar para o arquivo de configuração.

O código a seguir fornece um exemplo simples de um arquivo de configuração do aplicativo.Este exemplo adiciona um TextWriterTraceListener para o Listeners coleção para ativar a gravação de informações de depurar para um arquivo.

<configuration>
   <system.diagnostics>
      <trace useGlobalLock="false" autoflush="true" indentsize="0">
         <listeners>
            <add name="myListener" type="System.Diagnostics.TextWriterTraceListener, system version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="c:\myListener.log" />
         </listeners>
      </trace>
   </system.diagnostics>
</configuration>

O publicador diretiva arquivo

Em segundo lugar, o tempo de execução examina o arquivo de diretiva de publicador, se existir um.O publicador diretiva arquivos são distribuídos por um publicador de componente sistema autônomo uma correção ou atualização para um componente compartilhado.Esses arquivos contêm informações de compatibilidade emitidos pelo publicador do componente compartilhado que direciona uma referência de assembly para uma nova versão.Ao contrário de aplicativos e arquivos de configuração da computador, arquivos de política do publicador estão contidos em seu próprio assembly deve ser instalado no cache de assembly global.

Este é um exemplo de um arquivo de configuração de diretiva de publicador:

<configuration>
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">

            <dependentAssembly>
                <assemblyIdentity name="asm6" publicKeyToken="c0305c36380ba429" /> 
                <bindingRedirect oldVersion="3.0.0.0" newVersion="2.0.0.0"/>  
            </dependentAssembly>

        </assemblyBinding>
    </runtime>
</configuration>

Para criar um assembly, você pode usar o Vinculador do conjunto (AL.exe)  ferramenta com um comando, sistema autônomo a seguir:

Al.exe /link:asm6.exe.config /out:policy.3.0.asm6.dll /keyfile: compatkey.dat /v:3.0.0.0

compatkey.dat é um arquivo de chave de nome forte. Esse comando cria um assembly de nome forte, que você pode colocar no cache global de assemblies.

Observação:

Diretiva de publicador afeta todos os aplicativos que usam um componente compartilhado.

O arquivo de configuração de diretiva de publicador substitui versão informações provenientes do aplicativo (isto é, de manifesto do assembly ou do arquivo de configuração do aplicativo).Se não houver nenhuma demonstrativo no arquivo de configuração do aplicativo para redirecionar a versão especificada no manifesto do assembly, o publicador diretiva arquivo substitui a versão especificada no manifesto do assembly.Entretanto, se houver uma demonstrativo redirecionando no arquivo de configuração do aplicativo, diretiva de publicador substitui essa versão, em vez de especificado no manifesto.

Um editor diretiva arquivo é usado quando um componente compartilhado é atualizado e a nova versão do componente compartilhado deve ser recebida pelos mecanismos de todos os aplicativos que usam esse componente.As configurações no arquivo de diretiva de publicador substituem configurações no arquivo de configuração aplicativo, a menos que o arquivo de configuração do aplicativo impõe o modo de segurança.

Modo de segurança

Arquivos de política do publicador explicitamente geralmente são instalados sistema autônomo parte da atualização do empacotar ou programa de serviço.Se houver qualquer problema com o componente compartilhado atualizado, você pode ignorar as substituições no arquivo de diretiva de publicador usando o modo de segurança.Modo de segurança é determinado pelo <publisherPolicy aplicar = "yes |não "/ > elemento, localizado apenas no arquivo de configuração do aplicativo.Ele especifica se as informações de configuração de diretiva de publicador devem ser removidas do processo de vinculação.

É possível conjunto o modo de segurança para todo o aplicativo ou para assemblies selecionados.Ou seja, você pode desativar a diretiva para todos os assemblies que fazem parte do aplicativo ou ativá-lo para alguns módulos (assemblies), mas outros não.Para aplicar diretiva de publicador seletivamente a assemblies que compõem um aplicativo conjunto <publisherPolicy apply = não / > e especifique quais módulos (assemblies) que deseja ser afetados usando o <dependentAssembly > elemento.Para aplicar a diretiva de publicador a todos os assemblies que fazem parte do aplicativo, defina <publisherPolicy apply = não / > com nenhum elemento assembly dependente.Para obter mais informações sobre configuração, consulte Arquivos de configuração do aplicativo.

Arquivo de configuração de computador

Em terceiro lugar, o tempo de execução examina o arquivo de configuração da computador.Este arquivo, chamado Machine.config, reside no computador local no subdiretório Config na diretório raiz onde o tempo de execução está instalado.Este arquivo pode ser usado por administradores para especificar restrições de ligação de assembly que são locais para o computador.As configurações no arquivo de configuração de computador têm precedência sobre todas Outros configurações; no entanto, isso não significa que todas as definições de configuração devem ser colocadas nesse arquivo.A versão determinada pelo arquivo de diretiva do administrador é final e não pode ser substituída.As substituições especificadas no arquivo computador.config afetam todos os aplicativos.Para obter mais informações sobre arquivos de configuração, consulte Arquivos de configuração.

Consulte também

Conceitos

Como o Runtime Localiza Assemblies

Cenários de implantação de aplicativos do .NET estrutura

Etapa 2: Verificando anteriormente assemblies referenciados

Etapa 3: Verificando o cache global de assembly

Etapa 4: Localizando que o assembly por meio de bases de código ou probing

Referências de assembly parcial