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:
Usando o elemento codeBase>.<
Usando o elemento de sondagem>.<
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.