当我尝试编译我的VB.NET Web项目时,收到的错误是:
[PropertyName] is not a member of '[Namespace.Class]'
引用的类是项目引用的dll的一部分。该属性肯定存在于引用的类中,其访问修饰符为Public。更重要的是,如果我更新引用,或者只是删除它并将其添加回来,错误就会消失:intellisense显示我的属性 - 一切都很好......直到我再次尝试编译。然后错误返回。我甚至重新启动Visual Studio无济于事。发生了什么事?
[UPDATE] 在Will的评论之后,我已经将命名空间更改为我绝对肯定是唯一的。现在,我得到了更多相同类型的编译器错误。编译器没有识别出一些重载,尽管它们在intellisense中是正确的。怪异!
以下是我之前收到错误的代码:
Dim gis = New MapQuestGeocoder
Dim r = gis.GetResult(address)
originCoord = r.Coordinate
未识别出Coordinate属性。现在,错误是“重载解析失败...”并在另一个类中引发,在下面的第二行:
Dim gis = New MapQuestDirections()
Dim route = gis.GetResult(originAddress, address)
MapQuestGeocoder和MapQuestDirections都位于相同的dll,相同的命名空间中:Kosh.Geo
答案 0 :(得分:0)
好的,所以我发现第二个错误正在发生,因为bin目录同时保留了旧程序集和新程序集,我命名不同以匹配新命名空间。我得出的结论是,即使我删除了引用,旧的dll也在那里,因为我的项目中的另一个dll依赖于这个相同的Geo程序集。我认为这可能会导致原始错误,因为Geo程序集不同步。