Compartilhar via


Especificando o local de um assembly

Observação

Este artigo é específico para aplicativos .NET Framework. 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, consulteComo 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 dica de base de código para um assembly que não tem nome forte, a dica deverá apontar para a base de aplicativos ou um subdiretório do diretório base do aplicativo.

Usando o elemento de <>investigação.

O runtime localiza assemblies que não têm uma base de código por investigação. Para saber mais sobre investigação, confira Como o runtime localiza assemblies.

Você pode usar o elemento de <investigação> 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 usar para pesquisar 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.

Confira também