Compartilhar via


Referências de assembly parcial

Uma referência de assembly completo inclui texto Nome, versão, cultura e token de chave pública do assembly (se o assembly tiver um nome forte).Uma referência de assembly completo é necessária se você consultar qualquer assembly que faz parte do common linguagem tempo de execução ou qualquer conjunto localizado na cache de assembly global.Também dinamicamente, você pode referenciar um assembly, fornecendo somente informações parcial, sistema autônomo especificar o nome de assembly.

O uso de referências de assembly parcial não é recomendável, pois ele pode levar a um número de problemas de controle de controle de versão:

  • Versões do assembly podem não ser compatível com versões anteriores.Por exemplo, seu código pode funcionar com a versão 1.6 do assembly, mas por causa da referência assembly parcial, você poderá obter uma versão mais recente tem uma alterar incompatível.

  • Versões do assembly podem não ser compatível com o encaminhar.Por exemplo, seu código pode funcionar com a versão 1.6 do assembly, mas por causa da referência assembly parcial, você poderá obter uma versão anterior que não possui o código necessário.

  • Um aplicativo que instala uma nova versão de um assembly pode interromper os aplicativos que usam referências assembly parcial para carregar o assembly, se a nova versão não for compatível.

sistema autônomo sistema autônomo possíveis problemas de controle de controle de versão é tão grande a LoadWithPartialName método está marcado sistema autônomo obsoleto no .NET estrutura controle de versão 2.0.

Fazendo referências de assembly parcial

Você pode fazer referências parcial para um assembly em seu código uma das seguintes maneiras:

  • Use um método sistema autônomo sistema.reflexão.Assembly.Load e especifique apenas uma referência parcial.O tempo de execução verifica o assembly no diretório de aplicativo.

  • Use o sistema.reflexão.Assembly.LoadWithPartialName método e especifique apenas uma referência parcial.O tempo de execução verifica o assembly no diretório de aplicativo e no cache global de assemblies.

Observação:

O LoadWithPartialName método está obsoleto no .NET estrutura versão 2.0.

Usando o LoadWithPartialName método pode introduzir variabilidade em processo de vinculação.Por exemplo, se você solicitar uma ligação a um assembly com um nome forte, mas não incluem a chave pública em sua referência, você não terá nenhuma garantia de que o assembly que você vincula a proveniente do publicador de esperado.Além disso, as referências que não incluem o token de chave pública não estão sujeitos a política de versões, para que o aplicativo e os arquivos de configuração da computador nunca são verificados.Referências parcial usando o LoadWithPartialName método funcionam melhor em cenários para captar a versão mais recente de um assembly.

Referências parcial usando o método LoadWithPartialName

Observação:

O LoadWithPartialName método está obsoleto no .NET estrutura versão 2.0.

Uma telefonar para o LoadWithPartialName método deve incluir pelo menos o nome de texto do assembly, mas também pode incluir o símbolo de chave pública, versão ou cultura.Como você está usando um método que espera apenas uma referência parcial, não é necessário incluir informações de referência completa (nome, versão, cultura e, se aplicável, o token de chave pública).

Ao fazer referência um assembly usando o parcialmenteLoadWithPartialName método, o tempo de execução usa regras específicas para localizar o assembly mencionado.Essas regras incluem:

  1. O tempo de execução verifica o arquivo de configuração do aplicativo para qualificar informações para referência no <qualifyassembly> elemento.Se uma entrada válida for encontrada, ligação continua sistema autônomo faria para qualquer referência completa.

  2. O tempo de execução, em seguida, procura no diretório de aplicativo para um assembly que corresponde ao nome de texto do assembly especificado.Se uma correspondência for encontrada, o tempo de execução usa esse assembly.

  3. Se nenhuma correspondência for encontrada no diretório de aplicativo, o tempo de execução verifica o cache de assembly global do assembly.Se o token de chave pública, versão ou cultura for especificada na referência parcial, o tempo de execução tentará correspondem exatamente ao valor.Se nenhuma versão for especificada, o tempo de execução tenta localizar o assembly com o maior número de versão que corresponde aos critérios especificados.Se a cultura ou o token de chave pública não for especificado, comportamento do tempo de execução é indefinido.

    Por exemplo, suponha que a telefonar Assembly.LoadWithPartialName("math, Version 5.0.0.0") é feita e o Sumário do cache de assembly global são sistema autônomo seguintes:

    math,version=5.0.0.0,publicKeyToken=11111111,culture=de
    math,version=5.0.0.0,publicKeyToken=22222222,culture=en
    

    O resultado da telefonar é indefinido.O tempo de execução seleciona o primeiro assembly encontra.

    sistema autônomo outro exemplo, suponha que a telefonar Assembly.LoadWithPartialName("math") é feita e o Sumário do cache de assembly global são sistema autônomo seguintes:

    math,version=5.0.0.0,publicKeyToken=11111111,culture=neutral
    math,version=6.0.0.0,publicKeyToken=22222222,culture=neutral
    

    O resultado da telefonar é um BIND para o assembly de matemática, versão 6.0.0.0.

    sistema autônomo um exemplo final, suponha que a telefonar Assembly.LoadWithPartialName("math,publicKeyToken=11111111") é feita e o Sumário do cache global de assemblies é da seguinte maneira:

    math,version=5.0.0.0,publicKeyToken=11111111,culture=neutral
    math,version=6.0.0.0,publicKeyToken=22222222,culture=neutral
    

    O resultado da telefonar é uma ligação para o assembly de matemática, versão 5.0.0.0.

Referências parcial com informações de qualificação

Você também pode fazer uma referência dinâmica usando um método sistema autônomo sistema.reflexão.Assembly.Load e fornecer apenas uma referência parcial, mas você e qualificar a referência usando o <qualifyAssembly > elemento no arquivo de configuração de aplicativo.Esse elemento permite que você forneça as informações de referência completo (nome, versão, cultura e, se aplicável, o token de chave pública) em seu arquivo de configuração do aplicativo em vez de no seu código.

Observação:

Este tipo de referência parcial não deve ser usado com assemblies que são compartilhados entre vários aplicativos.Como as configurações são aplicadas por aplicativo e não por conjunto, um assembly compartilhado usando esse tipo de referência parcial exigiria que cada aplicativo usando o conjunto compartilhado para as informações de qualificação em seu arquivo de configuração.

Consulte também

Conceitos

Como o Runtime Localiza Assemblies

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

Etapa 1: Examinando os arquivos de configuração

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