不明确的引用

问题描述 投票:0回答:9

我在解决方案中删除了一个项目,然后又重新添加了它。 自从读完它后..我现在收到一个无法删除的

ambiguous reference
错误。 查看该类的实现(出现错误),我看到它引用了两次:

> ClassName (myclass.Class)    myclass.Class
> ClassName (myclass.Class)    myclass.Class, Version=1.0.0.0

命名空间仅查看一次,但此问题仅存在于1个部分视图中。

编辑:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MyClass.Class.MyViewModel>" %>

MyViewModel 给出了不明确的错误,如果我查看所有可用的类,它会显示重复项,例如:

MyClass.Class.MyViewModel
MyClass.Class.MyViewModel
MyClass.Class.MyOtherViewModel
MyClass.Class.MyOtherViewModel

但是当我在同一个项目中打开另一个部分视图时,就没有问题了。这只是 1 部分似乎保留了重复的引用。

知道如何解决这个问题吗?

c# visual-studio-2010 asp.net-mvc-2
9个回答
47
投票

您是否尝试过右键单击解决方案并执行

Clean Solution


4
投票

听起来您的项目对同一个程序集有两个不同的引用。

除掉其中一个。


1
投票

我收到此错误消息,但我的项目仍然构建并运行良好几个月。这是因为有人将一个类放在一个名称空间中,该名称空间的大小写与该名称空间的所有其他实例不同,因此它们实际上是两个不同的名称空间。我们的代码在技术上是正确的,但 ASPX

<%@ Register %>
指令抱怨它不明确,因为有两个不同的符号具有“相同”的名称;
MyNamespace
Mynamespace

检查你的大小写。


1
投票

您是否尝试过将其(Visual Studio)关闭然后再次打开?它对我有用...


1
投票

我删除了每个项目目录中的“bin”和“obj”子目录,错误就消失了。


0
投票

您的项目可能有一个指向解决方案中的程序集的链接,并且您的项目类对引用的程序集中的命名空间有一个 using 语句。

如果项目属于一个解决方案,则删除项目之间的程序集的链接。


0
投票

如果您引用了两个不同的版本,也可能会发生这种情况。如果您在问题项目中引用程序集,并且还引用具有相同引用但版本不同的另一个项目,则使用哪个引用是不明确的。


0
投票

我的解决方案中也遇到了同样的问题,引用不明确。当我尝试引用两个引用之一时,我不可能 - 单击后它没有执行任何操作。 原因是通过项目引用和 Nuget 引用引用同一个类。

我刚刚去了 C:\Users{userName}.nuget\packages{projectName} .6.0\lib et6.0{dllName}并删除dll文件。现在可以正常使用了


-2
投票

您收到此错误是因为您有两个具有相同名称和相同命名空间的类。您应该更改其中一个类的命名空间。

© www.soinside.com 2019 - 2024. All rights reserved.