Partilhar via


Especificando o local de um assembly

Nota

Este artigo é específico do .NET Framework. Ele não se aplica a implementações mais recentes do .NET, incluindo o .NET 6 e versões posteriores.

Há duas maneiras de especificar o local de um assembly:

Você também pode usar a Ferramenta de Configuração do .NET Framework (Mscorcfg.msc) para especificar locais de assembly ou especificar locais para o Common Language Runtime investigar assemblies.

Usando o <elemento codeBase>

Você pode usar o elemento codeBase> somente na configuração da <máquina ou em arquivos de política do editor que também redirecionam a versão do assembly. Quando o tempo de execução determina qual versão de assembly usar, ele aplica a configuração de base de código do arquivo que determina a versão. Se nenhuma base de código for indicada, o tempo de execução investigará o assembly da maneira normal. Para obter detalhes, consulte Como o tempo de execução localiza assemblies.

O exemplo a seguir mostra como especificar o local de um assembly.

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
       <dependentAssembly>
         <assemblyIdentity name="myAssembly"
                           publicKeyToken="32ab4ba45e0a69a1"
                           culture="en-us" />
         <codeBase version="2.0.0.0"
                   href="http://www.litwareinc.com/myAssembly.dll"/>
       </dependentAssembly>
      </assemblyBinding>
   </runtime>
</configuration>

O atributo version é necessário para todos os assemblies de nome forte, mas deve ser omitido para assemblies que não são de nome forte. O <elemento codeBase> requer o atributo href . Não é possível especificar intervalos de versão no <elemento codeBase> .

Nota

Se você estiver fornecendo uma dica de base de código para um assembly que não tem nome forte, a dica deverá apontar para a base do aplicativo ou para um subdiretório do diretório base do aplicativo.

Usando o <elemento de sondagem>

O tempo de execução localiza assemblies que não têm uma base de código por sondagem. Para obter mais informações sobre sondagem, consulte Como o tempo de execução localiza assemblies.

Você pode usar o <elemento probing> no arquivo de configuração do aplicativo para especificar subdiretórios que o tempo de execução deve pesquisar ao localizar um assembly. O exemplo a seguir mostra como especificar diretórios que o tempo de execução deve pesquisar.

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
         <probing privatePath="bin;bin2\subbin;bin3"/>
      </assemblyBinding>
   </runtime>
</configuration>

O atributo privatePath contém os diretórios que o tempo de execução deve procurar por assemblies. Se o aplicativo estiver localizado em C:\Program Files\MyApp, o tempo de execução procurará assemblies que não especificam uma base de código em C:\Program Files\MyApp\Bin, C:\Program Files\MyApp\Bin2\Subbin e C:\Program Files\MyApp\Bin3. Os diretórios especificados em privatePath devem ser subdiretórios do diretório base do aplicativo.

Consulte também