如果应用程序尝试使用无效的引用,则会生成异常错误。无法找到引用组件是造成该错误的主要起因,但是在几种情况下可将引用视为无效。这些情况在下面的列表中说明:项目的引用路径不正确或不完整。

所引用的文件已删除。

所引用的文件已重命名。

网络连接或身份验证失败。

计算机上未安装引用指向的 COM 组件。

下面是这些问题的补救办法。

注意 在项目文件中使用绝对路径来引用程序集中的文件。因此,在多开发人员环境中工作的用户可能在自己的本地环境中找不到所引用的程序集。若要避免这些错误,在这种情况下最好添加项目到项目的引用。有关更多信息,请参见添加和移除引用和使用程序集编程。

引用路径不正确

如果项目在不同的计算机上共享,则当某组件位于每台计算机上的不同目录时,可能会找不到某些引用。引用以组件文件的名称(例如,MyComponent)来存储。在将引用添加到项目时,该组件文件的文件夹位置(例如,C:\MyComponents\)会追加到引用路径项目属性。

当该项目被打开时,它会尝试通过查找引用路径上的目录来定位这些被引用的组件文件。如果某计算机将该组件存储在不同的目录(如 D:\MyComponents\)中,则在此计算机上打开该项目时,将无法找到该引用,并会在“任务列表”中显示一个错误。

若要修正此问题,可以删除无效的引用,然后使用“添加引用”对话框替换该引用。另一个解决方案是使用项目属性页中的“引用路径”项,并修改该列表中的文件夹以指向正确的位置。对于每台计算机上的每个用户,“引用路径”属性保持不变,所以修改引用路径不会影响该项目的其他用户。

提示 项目到项目的引用不存在这些问题。因此,应尽可能使用项目到项目引用而不使用文件引用。有关更多信息,请参见组件和程序集。

通过纠正引用路径修复无效的项目引用在解决方案资源管理器中,右击该项目节点,然后从快捷菜单中选择“属性”。

在该对话框中选择相应的属性页。

如果正在使用 Visual Basic,请选择左侧窗格中“通用属性”文件夹下的“引用路径”。在“引用路径”窗格中,在“文件夹”字段中键入路径,然后单击“添加文件夹”按钮。

- 或 -

如果正在使用 Visual C#,请选择左侧窗格中“通用属性”文件夹下的“引用路径”。在大编辑框中单击以获取一个编辑点,然后键入包含所引用项的文件夹的路径并单击“确定”。

引用的文件已删除

有可能要引用的文件已被删除,在驱动器上不再存在。

修复对驱动器上不再存在的文件的无效项目引用删除该引用。有关更多信息,请参见添加和移除引用。

如果该引用位于计算机上的另一位置,则从该位置读取它。有关更多信息,请参见添加和移除引用。

引用的文件已重命名

有可能要引用的文件已被重命名。

修复对已重命名文件的无效引用删除该引用,然后添加对已重命名文件的引用。

提示 如果该引用位于计算机上的另一个位置,则需要从该位置读取它。有关更多信息,请参见添加和移除引用。

网络连接或身份验证失败

无法访问文件可能有各种原因:例如,失败的网络连接或失败的身份验证。对于每一种原因都可能会有不同的恢复方法;例如,可能需要与本地管理员联系以获取对所需资源的访问权。不过,始终可以通过删除该引用并修复使用它的代码来进行恢复。有关更多信息,请参见添加和移除引用。

计算机上未安装 COM 组件

如果某用户已添加了一个对 COM 组件的引用而第二个用户试图在未安装此组件的计算机上运行该代码,则第二个用户将收到错误信息,指示引用已无效。在第二个用户的计算机上安装此组件即可更正这一错误。有关在项目中使用对 COM 组件的引用的更多信息,请参见 Visual Basic 和 Visual C# 中的 COM 互操作性。

文章引用自:http://msdn.microsoft.com/library/chs/default.asp?url=/library/chs/vbcon/html/vbtskfixingbrokenreferences.asp