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:
Usando o elemento <codeBase>.
Usando o elemento <de investigação>.
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.