有关无效引用的疑难解答

适用于: Visual Studio

如果应用程序尝试使用损坏的引用,则会生成异常错误。 错误的主要原因是无法找到引用的组件,但有几个方案认为引用已损坏,它们是:

  • 项目的引用路径不正确或不完整。
  • 引用的文件已删除。
  • 引用的文件已重命名。
  • 网络连接或身份验证失败。
  • 计算机上未安装引用的 COM 组件。

接下来的几个部分提供了这些方案的解决方案。

注意

使用项目文件的绝对路径引用程序集中的文件。 因此,在多开发人员环境下工作的用户可能会发现在其本地环境中缺少引用的程序集。 为了避免这些错误,最好添加项目到项目的引用。 有关更多信息,请参阅 .NET 程序集

引用路径不正确或不完整

如果项目在不同的计算机上共享,则当组件位于其他目录中时,可能无法找到某些引用。 引用存储时采用组件文件的名称(例如,MyComponent)。 添加对项目的引用时,组件文件(例如 C:\MyComponents)的文件夹位置将追加到 ReferencePath 项目属性。

打开项目时,Visual Studio 会查找引用路径上的目录,以尝试查找这些组件文件。 如果在将组件存储在其他目录中(如 D:\MyComponents)的计算机上打开项目,则不会找到引用,并且任务列表中会显示错误。

若要解决此问题,请使用以下方法之一:

  • 删除损坏的引用,然后使用“添加引用”对话框替换它
  • 使用 项目属性页中的“引用路径” 项。 修改列表中的文件夹以指向正确的位置。 为每台计算机上的每位用户保留“引用路径”属性。 因此,修改引用路径不会影响项目中的其他用户。

提示

项目到项目的引用没有这些损坏的引用问题。 因此,如果可以,请使用 Project 到项目引用而不是文件引用。

修复损坏的项目引用

若要修复损坏的项目引用,请执行以下步骤更正引用路径:

  1. 在“解决方案资源管理器”中,右键单击项目节点,然后选择“属性”。 随即显示“项目设计器”。
  2. 如果使用 Visual Basic,请选择 “引用 ”页,然后选择“ 引用路径 ”。
    1. 在“引用路径”对话框中,键入包含要在“文件夹”字段中引用的项目的文件夹的路径。
    2. 选择“ 添加文件夹”。
  3. 如果使用 C#,请选择“引用路径”页。
    1. “文件夹” 字段中,键入包含要引用的项目的文件夹的路径。
    2. 选择“ 添加文件夹”。

已删除引用文件

下面是两个选项,用于修复驱动器上不再存在的已删除文件的损坏项目引用:

  • 删除引用。
  • 如果引用位于计算机上的另一个位置,请从该位置读取它。

已重命名引用文件

下面是修复已重命名文件的损坏引用的两个选项:

  • 删除引用,然后添加对重命名文件的引用。
  • 如果引用位于计算机上的另一个位置,请从该位置读取它。

网络连接或身份验证失败

导致文件不可访问的原因可能有很多。 例如,可能存在网络连接失败或身份验证失败。 相反,每种原因可能有不同的解决方法。 例如,可能需要联系本地管理员才能访问所需的资源。 但是,删除引用和修复使用该引用的代码是一种始终可供选择的方法。

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

如果用户添加对 COM 组件的引用,而第二个用户尝试在未安装此组件的计算机上运行代码,则第二个用户会收到损坏的引用错误。 在第二台计算机上安装组件可更正此错误。 有关如何在项目中使用对 COM 组件的引用,请参阅 .NET Framework 应用程序中的 COM 互操作性

参考