我们的客户报告说,在VB.NET中尝试使用.NET .DLL时会收到错误:
错误BC31429:'OurClass'不明确,因为名称空间'our.company.nspace'中存在多种具有此名称的成员
我还能够通过包含单行
的虚拟项目重现错误Dim x as our.company.nspace.OurClass
通常这是因为有几种类型的名称只有大小写不同。但在这种情况下,没有这种模糊性。 OurClass
不仅是特定命名空间中的唯一名称,而且是整个程序集中的唯一名称以及项目引用的任何其他程序集。反射器也显示了这一点。也没有具有相同名称的类成员,也由Reflector验证。
另外一个奇怪的事情是,在我创建虚拟项目之后错误并不是立即出现,然后突然出现,现在它不再消失了。事实上,我甚至没有改变第一个工作的两个重新编译之间的任何东西,第二个没有。
那么...给出了什么?
(注意:.DLL使用和引用vjslib(J#),如果它有任何相关性)
答案 0 :(得分:0)
您是否尝试过使用Global。字首?例如
Dim x as Global.our.company.nspace.OurClass
请参阅http://msdn.microsoft.com/en-us/library/k701czy1(VS.90).aspx
答案 1 :(得分:0)
之前部署网络应用时遇到过这个问题。我没有在我的开发环境中收到错误,但是当我尝试将其部署到测试服务器时,我得到了模糊的命名空间错误。我不得不从bin
文件夹中删除所有DLL,然后重新部署应用程序。
听起来它可能是一个参考问题。也许客户端只需要删除并重新添加对DLL的引用,然后对其解决方案进行重建?
答案 2 :(得分:0)
发现了这个问题。有两个类具有重复名称,一个小写(标记为"过时")和一个大写,但两个都在代码中。显然不符合CLS并且爆炸了VB.Net,它不区分大小写。
生成并生成
generateAsync和GenerateAsync
今天的解决方案是从GitHub下载,删除小写违规者,重新编译并手动添加到项目至少,直到最终发布更新的修订。