代码之家  ›  专栏  ›  技术社区  ›  Antony

VS project无法编译:属性不是引用的DLL的成员

  •  0
  • Antony  · 技术社区  · 14 年前

    当我试图编译我的VB.NET版在web项目中,我收到一个错误,内容如下:

    [PropertyName] is not a member of '[Namespace.Class]' 
    

    引用的类是项目引用的dll的一部分。该属性肯定存在于引用的类中,并且其访问修饰符是Public。更重要的是,如果我更新引用,或者只是删除它然后再添加回来,错误就消失了:intellisense显示了我的属性--一切正常。。直到我再次尝试编译。然后错误返回。我甚至重新启动了visualstudio也没有用。怎么回事?

    [更新] 在Will的评论之后,我已经将名称空间更改为我绝对确定是唯一的。现在,我得到了更多相同类型的编译器错误。编译器无法识别某些重载,尽管它们在intellisense中就在那里。奇怪的!

    这是我之前出错的代码:

    Dim gis = New MapQuestGeocoder
    Dim r = gis.GetResult(address)
    originCoord = r.Coordinate
    

    无法识别坐标属性。现在,错误是“重载解析失败…”,并在另一个类中引发,在下面的第二行:

    Dim gis = New MapQuestDirections()
    Dim route = gis.GetResult(originAddress, address)
    

    MapQuestGeocoder和MapQuestDirections都位于相同的dll中,具有相同的命名空间:科什地理

    1 回复  |  直到 14 年前
        1
  •  0
  •   Antony    14 年前

    好的,我发现发生第二个错误是因为bin目录同时保留了旧程序集和新程序集,为了匹配新的名称空间,我对它们进行了不同的命名。我的结论是,即使在我删除了引用之后,旧的dll仍然存在,因为我的项目中的另一个dll依赖于同一个Geo程序集。我在想,这可能也导致了最初的错误,因为Geo程序集不同步。