BUG: Aparece el mensaje de error "Attempt to Access the Method Failed" si se utiliza una referencia a una biblioteca de objetos Microsoft Forms 2.0 incorrecta

Seleccione idioma Seleccione idioma
Id. de artículo: 824009 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

Síntomas

En un proyecto de Visual Studio .NET con una referencia a la Biblioteca de objetos de Microsoft Forms 2.0, puede recibir un mensaje de error parecido al siguiente:
System.MethodAccessException: "Attempt to access the method failed."

Causa

Al utilizar el cuadro de diálogo Agregar referencia para agregar una referencia a la Biblioteca de objetos de Microsoft Forms 2.0, puede observar que aparecen dos entradas para la Biblioteca de objetos de Microsoft Forms 2.0. Ambas entradas se refieren al archivo FM20.dll.

Debe seleccionar la primera entrada Biblioteca de objetos de Microsoft Forms 2.0, pues es la que corresponde a la referencia al ensamblado de interoperabilidad primario (PIA). Si seleccionara la segunda, la aplicación podría comportarse de forma distinta a lo esperado.

Solución

Para resolver el problema, siga estos pasos:
  1. En el Explorador de soluciones, haga clic con el botón secundario del mouse (ratón) en la referencia MSForms y, a continuación, seleccione Quitar.
  2. En el Explorador de soluciones, haga clic con el botón secundario en Referencias y, después, seleccione Agregar referencia.

    Aparecerá el cuadro de diálogo Agregar referencia.
  3. En el cuadro de diálogo Agregar referencia, haga clic en la ficha COM.
  4. En la lista de componentes, haga clic en la primera entrada denominada Biblioteca de objetos de Microsoft Forms 2.0.

    Nota
    En principio, ésta debería ser la versión del PIA. Si sólo apareciera una entrada Biblioteca de objetos de Microsoft Forms 2.0 en el cuadro de diálogo Agregar referencia y no fuera la versión del PIA, deberá instalar el PIA primero desde el CD-ROM de Microsoft Office System 2003.
  5. Haga clic en Seleccionar para agregar la entrada a la lista de componentes seleccionados.
  6. Haga clic en Aceptar para cerrar el cuadro de diálogo Agregar referencia.
  7. En el Explorador de soluciones, haga clic en la referencia MSForms agregada en el paso 5. Compruebe que la propiedad Copia local se encuentra establecida en False y que Ruta de acceso está señalando al PIA (según se describe en la sección "Más información").
  8. Elimine el archivo Interop.MSForms.dll antiguo de la carpeta Obj situada en la carpeta de su aplicación.

Más información

Cuando utilice una referencia a la versión del PIA de la Biblioteca de objetos de Microsoft Forms 2.0, observará en el Explorador de soluciones las siguientes propiedades con respecto a la referencia MSForms:
  • Copia local: False
  • Ruta de acceso: C:\WINDOWS\assembly\GAC\Microsoft.Vbe.Interop.Forms\11.0.0.0__71e9bce111e9429c\Microsoft.Vbe.Interop.Forms.dll
Si la propiedad Ruta de acceso señalara a una carpeta en la caché de ensamblado global (GAC), querrá decir que la referencia (PIA) es correcta.

Si la referencia a la Biblioteca de objetos de Microsoft Forms 2.0 ha sido agregada de forma incorrecta (o si el PIA no está instalado), las propiedades de MSForms aparecerán así:
  • Copia local: True
  • Ruta de acceso: C:\MiAplicación\obj\Interop.MSForms.dll
Observe que Visual Studio .NET crea un nuevo ensamblado de interoperabilidad (IA) y, a continuación, lo copia a una carpeta del proyecto. Si esto ocurre, querrá decir que el ensamblado utilizado es incorrecto.

Si su solución utiliza la referencia MSForms equivocada, podrían darse problemas al intentar utilizar objetos de esta biblioteca. Por ejemplo, supongamos que intenta utilizar la función FindControl en un proyecto de libro de Excel creado con Visual Studio Tools for the Microsoft Office System (normalmente, esto se haría para capturar el evento Click de un control CommandButton en la hoja de cálculo). Si la solución utiliza la referencia MSForms equivocada, el evento Click del control CommandButton no se desencadenará cuando el usuario haga clic en el botón de la hoja de cálculo, por mucho que no parezcan haberse producido errores en el código. Si utiliza un controlador de excepciones para intentar asignar el objeto CommandButton, recibirá el mensaje de error indicado en la sección "Síntomas".

Propiedades

Id. de artículo: 824009 - Última revisión: martes, 23 de diciembre de 2003 - Versión: 1.2
La información de este artículo se refiere a:
  • Microsoft Visual Studio .NET 2003 Professional
  • Microsoft Office Professional Edition 2003
  • Microsoft Visual Studio Tools for the Microsoft Office System
Palabras clave: 
kberrmsg kbbug kbpia kbnofix KB824009

Enviar comentarios

 

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