4

我们的一个客户报告说,当尝试在 VB.NET 中使用我们的 .NET .DLL 时,他们会收到以下错误:

错误 BC31429:“OurClass”不明确,因为命名空间“our.company.nspace”中存在多种具有此名称的成员

我还能够使用包含单行的虚拟项目来重现错误

Dim x as our.company.nspace.OurClass

通常这是因为有几种类型的名称只是大小写不同。但在这种情况下,就没有这种模棱两可了。OurClass不仅在特定命名空间中,而且在整个程序集和项目引用的任何其他程序集中都是唯一的名称。反射器也显示了这一点。也没有同名的类成员,也由 Reflector 验证。

还有一个奇怪的事情是,在我创建虚拟项目后,错误并没有立即出现,然后它突然出现,现在它不再消失了。事实上,我什至没有改变第一个工作的两个重新编译之间的任何东西,而第二个没有。

那么......什么给了?

(注意:.DLL 使用和引用 vjslib (J#),如果有任何相关性的话)

4

3 回答 3

1

您是否尝试过使用 Global. 字首?例如

Dim x as Global.our.company.nspace.OurClass

请参阅http://msdn.microsoft.com/en-us/library/k701czy1(VS.90).aspx

于 2010-09-07T17:12:30.557 回答
1

发现问题。有两个类名称重复,一个小写(标记为“过时”),一个大写,但都留在代码中。显然不符合 CLS 并炸毁不区分大小写的 VB.Net。

生成和生成

generateAsync 和 GenerateAsync

今天的解决方案是从 GitHub 下载,删除小写违规者,重新编译并手动添加到项目中,至少直到最后发布更新的修复程序。

于 2017-11-09T18:03:58.670 回答
0

我以前在部署 Web 应用程序时遇到过这个问题。我在我的开发环境中没有收到错误,但是当我尝试将它部署到测试服务器时,我收到了模棱两可的命名空间错误。我不得不从bin文件夹中删除所有 DLL,然后重新部署应用程序。

听起来这可能是一个参考问题。也许客户只需要删除并重新添加对您的 DLL 的引用,然后对他们的解决方案进行重建?

于 2010-11-04T20:28:51.367 回答