错误:"失败方法的访问尝试"错误信息 (使用错误的 Microsoft 窗体 2.0 对象库的引用时

文章翻译 文章翻译
文章编号: 824009 - 查看本文应用于的产品
展开全部 | 关闭全部

症状

在包含 Microsoft 窗体 2.0 对象库的引用一个 Visual Studio.net 项目中您可能会收到与以下类似的错误消息:
System.MethodAccessException:"尝试访问该方法失败"。

原因

当您使用 添加引用 对话框添加到 Microsoft 窗体 2.0 对象库的引用时,您可能会注意到两个项显示为 Microsoft 窗体 2.0 对象库。 这两个这些项,请参阅 FM20.dll 文件。

因为这是主 Interop 程序集 (PIA) 引用,您必须在列表中选择第一个 Microsoft 窗体 2.0 对象库 条目。如果选择了第二个条目中 Microsoft 窗体 2.0 对象库 应用程序可能不按预期工作。

解决方案

若要解决此问题,请按照下列步骤操作:
  1. 在解决方案资源管理器中,用鼠标右键单击 MSForms 引用,然后单击 删除
  2. 在解决方案资源管理器中,右击 引用,然后单击 添加引用

    添加引用 对话框。
  3. 添加引用 对话框中单击 COM 选项卡。
  4. 在组件列表中单击名为 Microsoft 窗体 2.0 对象库 的第一个条目。

    注意这应该是 PIA 版本。如果只有一个 Microsoft 窗体 2.0 对象库 条目出现在 添加引用 对话框中,并此条目不是 PIA 版本您必须首先安装该 PIA,从 Microsoft Office 系统 2003年安装光盘。
  5. 单击以将项添加到列表中选定的组件的 选择
  6. 单击 确定 以关闭 添加引用 对话框。
  7. 在解决方案资源管理器中,单击 MSForms 引用您在第 5 步中添加。验证的 复制本地 属性设置为 FalsePath 属性指向该 PIA (如"更多信息"部分中所述)。
  8. 删除旧 Interop.MSForms.dll 文件从目标文件夹位于您的应用程序文件夹。

更多信息

您在使用 Microsoft 窗体 2.0 对象库的 PIA 版本的引用时,您会注意到 MSForms 引用,在解决方案资源管理器中的以下属性:
  • 复制本地: False
  • 路径: C:\WINDOWS\assembly\GAC\Microsoft.Vbe.Interop.Forms\11.0.0.0__71e9bce111e9429c\Microsoft.Vbe.Interop.Forms.dll
如果 Path 属性指向一个文件夹在全局程序集缓存 (GAC) 中,您具有正确的 (PIA) 引用。

如果对 Microsoft 窗体 2.0 引用对象库添加不正确 (或如果没有安装该 PIA) MSForms 的属性如下所示:
  • 复制本地: True
  • 路径: C:\ MyApplication \obj\Interop.MSForms.dll
注意 Visual Studio.net 中创建新的互操作程序集 (IA),然后将其复制到您的项目中的文件夹。如果发生这种情况,您正在使用错误的程序集。

如果您的解决方案使用了错误的 MSForms 引用,您可能会遇到问题,当您尝试使用此库中的对象。例如: 您尝试在 Microsoft Office 系统在使用 Visual Studio 工具创建一个 Excel 工作簿项目中使用 FindControl 函数。(通常,您可以这样来捕获在工作表中的 命令按钮 控件的 Click 事件)。如果解决方案使用错误 MSForms 引用,命令按钮 控件的 Click 事件不能触发当用户单击该按钮在的工作表上时,尽管没有错误出现在代码中发生了。 如果当您尝试将您的 命令按钮 对象分配时,您可以使用异常处理程序,您将收到"症状"部分中显示的错误消息。

属性

文章编号: 824009 - 最后修改: 2004年1月15日 - 修订: 1.5
这篇文章中的信息适用于:
  • Microsoft Visual Studio .NET 2003 Professional Edition
  • Microsoft Office Professional Edition 2003
  • Microsoft Visual Studio Tools for the Microsoft Office System
关键字:?
kbmt kberrmsg kbbug kbpia kbnofix KB824009 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 824009
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

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