Artigo: 897297 - Última revisão: quarta-feira, 14 de Novembro de 2007 - Revisão: 2.7 A consumir assemblagens localizadas numa pasta diferente da pasta de base de aplicação em Visual Basic .NET ou do Visual Basic 2005
Nesta páginaINTRODUÇÃOEste artigo explica como consumir assemblagens localizadas numa pasta que é diferente da pasta de base da aplicação numa solução Microsoft Visual Basic .NET ou o Microsoft Visual Basic 2005. Mais InformaçãoQuando executa uma aplicação do Visual Basic .NET ou Visual Basic 2005, o common language runtime (CLR) espera-se localizar quaisquer assemblagens que a aplicação utiliza na cache de assemblagem global ou a pasta de aplicação. Quando o CLR não ligar com êxito a uma assemblagem, receberá uma mensagem de erro semelhante à seguinte: System.IO.FileNotFoundException. ficheiro ou assemblagem nome AssemblyName ou uma das respectivas dependências, não foi encontrado. Método 1: Instalar as assemblagens na cache de assemblagem globalEste método requer que assinem uma assemblagem com um nome seguro. Para assinar uma assemblagem com um nome seguro e, em seguida, instalar a assemblagem na cache de assemblagem global, siga estes passos:
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 uma assemblagem com um nome seguro, visite o seguinte site da Web MSDN:http://msdn2.microsoft.com/en-us/library/xc31ft41(vs.71).aspx
(http://msdn2.microsoft.com/en-us/library/xc31ft41(vs.71).aspx)
Nota Este método poderá ser difícil e demorado se muitas assemblagens existem e se as assemblagens têm dependências de objectos COM (Component Object Model) da Microsoft. Quaisquer dependências de assemblagem também tem de ser detectáveis por CLR. Por conseguinte, se pretender instalar a assemblagem na cache de assemblagem global, de instalar também as dependências da assemblagem na cache de assemblagem global. Método 2: Utilizar um ficheiro Application.Config juntamente com a tag CodeBaseUtilizando um ficheiro de configuração de aplicação, pode especificar a localização na qual o CLR deve procurar assemblagens dependentes. Especificamente, utilize o código de código base . Utilizando este código, pode colocar as assemblagens numa pasta separada. No entanto, este método ainda requer a que nome de assemblagem de biblioteca utilizando um nome seguro. Para utilizar o ficheiro de configuração da aplicação, siga estes passos:
Especificar localização de uma assemblagem 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 tempo de execução localiza assemblagens 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: Utilizar o método System.Reflection.Assembly.LoadFromEste método utiliza o método Assembly.LoadFrom para carregar uma assemblagem explicitamente um nome de caminho totalmente qualificado e de um nome de ficheiro totalmente qualificado. Para o fazer, siga estes passos:
Para mais informações sobre o método Assembly.LoadFrom , visite o seguinte site da Web 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: Utilizar o evento AssemblyResolveO evento AssemblyResolve ocorre sempre que o CLR tenta sem êxito ligar a uma assemblagem. Utilize o método ' AddHandler na aplicação para adicionar um processador de eventos que devolve a assemblagem correcta sempre que ocorre o evento AssemblyResolve .Nota Este método é não requerem que nome as assemblagens utilizando nomes fortes. O processador de eventos AssemblyResolve tem de devolver um objecto [assemblagem] que representa a assemblagem para o qual o CLR deve ligar. Normalmente, pode utilizar o método Assembly.LoadFrom para carregar a assemblagem. Volte a assemblagem carregada. Nota O processador de eventos deve estar localizado num procedimento que não contém quaisquer referências a assemblagens relocalizadas. Além disso, o processador de eventos tem de ser chamado antes de qualquer código que depende de assemblagens relocalizadas é designado por. O código seguinte é um exemplo de uma aplicação que carrega uma assemblagem utilizando 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 de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base: 302340
(http://support.microsoft.com/kb/302340/
)
Como criar uma assemblagem com um nome seguro 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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 de Artigos |






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


Voltar ao topo