ID do artigo: 897297 - Última revisão: quarta-feira, 14 de novembro de 2007 - Revisão: 2.7 Como consumir os assemblies que são localizados em uma pasta que seja diferente da pasta aplicativo básico no Visual Basic .NET ou no Visual Basic 2005
Nesta páginaINTRODUÇÃOEste artigo descreve como consumir os assemblies que estão localizados em uma pasta que é diferente da pasta base do aplicativo em uma solução Microsoft Visual Basic .NET ou Microsoft Visual Basic 2005. Mais InformaçõesQuando você executa um aplicativo Visual Basic .NET ou Visual Basic 2005, espera que o common language runtime (CLR) localizar todos os assemblies que o aplicativo usa em cache de assembly global ou a pasta de aplicativo. Com êxito, o CLR não vincular a um assembly, você recebe uma mensagem de erro semelhante à seguinte: System.IO.FileNotFoundException. arquivo ou assembly nome AssemblyName ou uma de suas dependências, não foi encontrado. Método 1: Instalar os assemblies no cache global de assembliesEste método requer que você assinar um assembly com um nome forte. Para assinar um assembly com um nome de alta segurança e para instalar o assembly no cache de assembly global, execute estas etapas:
http://msdn2.microsoft.com/en-us/library/6axd4fx6(vs.71).aspx
(http://msdn2.microsoft.com/en-us/library/6axd4fx6(vs.71).aspx)
Para obter mais informações sobre como assinar um assembly com um nome forte, visite o seguinte site da MSDN:http://msdn2.microsoft.com/en-us/library/xc31ft41(vs.71).aspx
(http://msdn2.microsoft.com/en-us/library/xc31ft41(vs.71).aspx)
Observação Esse método pode ser difícil e demorado se muitos assemblies existem e se os assemblies têm dependências nos objetos COM (Component Object Model). Dependências de assembly também devem ser detectáveis pelo CLR. Portanto, se você planeja instalar o assembly no cache de assembly global, também instale as dependências do assembly no cache global de assemblies. Método 2: Usar um arquivo Application.Config junto com a marca CodeBaseUsando um arquivo de configuração de aplicativo, você pode especificar o local em que o CLR deve procurar por assemblies dependentes. Especificamente, use a marca codebase . Usando essa marca, você pode colocar seus assemblies em uma pasta separada. No entanto, este método ainda requer que você nomeie o assembly de biblioteca usando um nome forte. Para usar o arquivo de configuração do aplicativo, execute estas etapas:
Especificar local do assembly http://msdn2.microsoft.com/en-us/library/4191fzwb(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/4191fzwb(vs.71).aspx) <codebase> elemento http://msdn2.microsoft.com/en-us/library/efs781xb(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/efs781xb(vs.71).aspx) Como o runtime localiza assemblies http://msdn2.microsoft.com/en-us/library/yx7xezcf(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/yx7xezcf(vs.71).aspx) Método 3: Use o método System.Reflection.Assembly.LoadFromEsse método usa o método assembly.LoadFrom para carregar explicitamente um assembly um nome de caminho totalmente qualificado e um nome de arquivo totalmente qualificado. Para fazer isso, execute as seguintes etapas:
Para obter mais informações sobre o método assembly.LoadFrom , visite o seguinte site da MSDN: http://msdn2.microsoft.com/en-us/library/system.reflection.assembly.loadfrom(vs.71).aspx
(http://msdn2.microsoft.com/en-us/library/system.reflection.assembly.loadfrom(vs.71).aspx)
Método 4: Usar o evento AssemblyResolveO evento AssemblyResolve ocorre sempre que o CLR tenta ligar a um assembly sem êxito. Use o método AddHandler no aplicativo para adicionar um manipulador de eventos que retorna o conjunto correto sempre que ocorrer o evento AssemblyResolve .Observação Esse método não não exigem que você nomeie os assemblies usando nomes de alta segurança. O manipulador de eventos AssemblyResolve deve retornar um objeto [assembly] que representa o assembly para os quais o CLR deve vincular. Normalmente você pode usar o método assembly.LoadFrom para carregar o assembly. Em seguida, retorna o assembly carregado. Observação O manipulador de eventos deve estar localizado em um procedimento que não contém qualquer referência aos assemblies realocados. Além disso, o manipulador de eventos deve ser chamado antes que qualquer código que depende dos assemblies realocados é chamado. O código a seguir é um exemplo de um aplicativo que carrega um assembly usando o evento AssemblyResolve : http://msdn2.microsoft.com/en-us/library/system.appdomain.assemblyresolve(vs.71).aspx
(http://msdn2.microsoft.com/en-us/library/system.appdomain.assemblyresolve(vs.71).aspx)
ReferênciasPara obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft: 302340
(http://support.microsoft.com/kb/302340/
)
Como criar um assembly com um nome forte no .NET Framework SDK A informação contida neste artigo aplica-se a:
Tradução automáticaIMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado. Clique aqui para ver a versão em Inglês deste artigo: 897297
(http://support.microsoft.com/kb/897297/en-us/
)
| Outros Recursos Outros Sites de Suporte
ComunidadesObtenha Ajuda AgoraTraduções deste artigo
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Voltar para o início