Compartilhar via


Especificando o local de um assembly

Observação

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 a ser investigado para assemblies.

Usando o elemento <codeBase>

Você pode usar o elemento <codeBase> somente na configuração do computador ou nos arquivos de política do editor que também redirecionam a versão do assembly. Quando o runtime 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 runtime investigará o assembly de maneira normal. Para obter detalhes, consulte Como o Runtime 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 de versão é necessário para todos os assemblies de nome forte, mas deve ser omitido para assemblies que não têm nome forte. O <elemento codeBase> requer o atributo href . Não é possível especificar intervalos de versão no <elemento codeBase> .

Observação

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

Usar o elemento de <investigação>.

O ambiente de execução localiza conjuntos que não têm uma base de código através de sondagem. Para saber mais sobre investigação, confira Como o runtime localiza assemblies.

Você pode usar o <elemento de sondagem> no arquivo de configuração do aplicativo para especificar subdiretórios que o runtime deve pesquisar ao localizar um assembly. O exemplo a seguir mostra como especificar diretórios que o runtime 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 runtime deve buscar para assemblies. Se o aplicativo estiver localizado em C:\Arquivos de Programas\MyApp, o runtime procurará assemblies que não especificam uma base de código em C:\Arquivos de Programas\MyApp\Bin, C:\Arquivos de Programas\MyApp\Bin2\Subbin e C:\Arquivos de Programas\MyApp\Bin3. Os diretórios especificados em privatePath devem ser subdiretórios do diretório base do aplicativo.

Consulte também