ERRO: Mensagem de erro "Attempt to Access the Method Failed" quando utiliza uma referência para a Microsoft Forms 2.0 Object Library incorrecta

Traduções de Artigos Traduções de Artigos
Artigo: 824009 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Sintomas

Num projecto do Visual Studio .NET que contenha uma referência à Microsoft Forms 2.0 Object Library, poderá receber uma mensagem de erro semelhante à seguinte:
System.MethodAccessException: "Attempt to access the method failed."

Causa

Quando utiliza a caixa de diálogo Add Reference para adicionar uma referência à Microsoft Forms 2.0 Object Library, poderá notar que são apresentadas duas entradas de Microsoft Forms 2.0 Object Library. Estas duas entradas referenciam o ficheiro FM20.dll.

Tem de seleccionar a primeira entrada de Microsoft Forms 2.0 Object Library na lista, uma vez que esta é a referência à PIA (Primary Interop Assembly). Se seleccionar a segunda entrada de Microsoft Forms 2.0 Object Library, a aplicação poderá não ter o comportamento previsto.

Resolução

Para resolver este problema, siga estes passos:
  1. No Solution Explorer, clique com o botão direito do rato na referência MSForms e clique em Remove.
  2. No Solution Explorer, clique com o botão direito do rato em References e clique em Add Reference.

    A caixa de diálogo Add Reference é apresentada.
  3. Na caixa de diálogo Add Reference, clique no separador COM.
  4. Na lista de componentes, clique na primeira entrada denominada Microsoft Forms 2.0 Object Library.

    Nota: esta deverá ser a versão da PIA. Se apenas existir uma entrada de Microsoft Forms 2.0 Object Library na caixa de diálogo Add Reference e esta não for a versão da PIA, terá de instalar primeiro a PIA a partir do CD-ROM do Microsoft Office System 2003.
  5. Clique em Select para adicionar a entrada à lista de componentes seleccionados.
  6. Clique em OK para fechar a caixa de diálogo Add Reference.
  7. No Solution Explorer, clique na referência MSForms adicionada no passo 5. Certifique-se de que a propriedade Copy Local está definida como False e de que a propriedade Path aponta para a PIA (conforme descrito na secção "Mais Informação").
  8. Elimine o ficheiro Interop.MSForms.dll antigo da pasta Obj, localizada na pasta da aplicação.

Mais Informação

Quando utiliza uma referência à versão da PIA da Microsoft Forms 2.0 Object Library, notará as seguintes propriedades para a referência a MSForms no Solution Explorer:
  • Copy Local: False
  • Path: C:\WINDOWS\assembly\GAC\Microsoft.Vbe.Interop.Forms\11.0.0.0__71e9bce111e9429c\Microsoft.Vbe.Interop.Forms.dll
Se a propriedade Path apontar para uma pasta da cache de assemblagem global (GAC, global assembly cache), significa que tem a referência (PIA) correcta.

Se a referência à Microsoft Forms 2.0 Object Library tiver sido adicionada incorrectamente (ou se a PIA não estiver instalada), as propriedades de MSForms serão as seguintes:
  • Copy Local: True
  • Path: C:\MinhaAplicação\obj\Interop.MSForms.dll
Repare que o Visual Studio .NET cria uma nova assemblagem de interoperabilidade (IA, interop assembly) e copia a mesma para uma pasta do projecto. Se este comportamento ocorrer, significa que está a utilizar a assemblagem incorrecta.

Se a sua solução utilizar a referência a MSForms incorrecta, poderá detectar problemas quando tentar utilizar objectos desta biblioteca. Por exemplo: tenta utilizar a função FindControl num projecto de livro do Excel criado com o Visual Studio Tools for the Microsoft Office System. (Normalmente, poderá fazer isto para capturar o evento Click de um controlo CommandButton da folha de cálculo.) Se a solução utilizar a referência a MSForms incorrecta, o evento Click do controlo CommandButton não é despoletado quando o utilizador clica no botão da folha de cálculo, apesar de, aparentemente, não ocorrerem erros no código. Se utilizar um processador de excepções quando tentar atribuir o objecto CommandButton, receberá a mensagem de erro apresentada na secção "Sintomas".

Propriedades

Artigo: 824009 - Última revisão: 31 de dezembro de 2003 - Revisão: 1.2
A informação contida neste artigo aplica-se a:
  • Microsoft Visual Studio .NET 2003 Professional Edition
  • Microsoft Office Professional Edition 2003
  • Microsoft Visual Studio Tools for the Microsoft Office System
Palavras-chave: 
kberrmsg kbbug kbpia kbnofix KB824009

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com