在VB.NET中导致“导入中指定的类型的命名空间不包含任何公共成员”的新pc

时间:2013-05-01 16:55:37

标签: vb.net namespaces public member import

我刚买了一台配备VS 2010的新PC(Win 7)(与旧PC相同)。我从源代码控制中获得了一个包含两个项目的VB.NET解决方案。其中一个项目建设很好。另一个项目将每个非MS Imports语句标记为:

Imports& 1中指定的命名空间或类型不包含任何公共成员或无法找到。确保定义了名称空间或类型,并且至少包含一个公共成员。确保导入的元素名称不使用任何别名。

具有讽刺意味的是,同一解决方案中的工作项目引用了所有相同的DLL。我删除并重新添加了DLL,所以我知道它们在那里,我可以在对象浏览器中扩展它们,所以我知道它们包含公共方法。

我已经没有尝试过的想法了。有人可以给我一块骨头,PLZ?

6 个答案:

答案 0 :(得分:9)

我遇到了同样的问题,我通过将.Net Framework 4.0客户端配置文件中的项目属性 - >编译 - >高级编译选项 - >目标框架值更改为.Net Framework 4.0来解决此问题

答案 1 :(得分:5)

我发生了这种情况。对我来说,新的DLL针对的是Dot Net 4.5,而引用它的项目仅针对4.0。切换新的dll以匹配修复问题。

答案 2 :(得分:2)

我之前遇到过类似的问题。在我的情况下,问题是dll位于网络共享驱动器上(在我的系统中显示为q :)所以当我引用它们时,文件路径是q:\ folder structure \ file.dll。在切换机器时,我的系统不再引用共享驱动器作为q:\而是引用另一个驱动器号,导致我的程序同样出错。

在我的情况下,我能够通过更改我从本地系统分配给网络路径的驱动器号中引用dll的方式来纠正此问题并防止它再次发生(\ SERVER NAME \ Drive Letter \ file path \ file.dll)。

答案 3 :(得分:1)

我遇到了同样的问题。我引用的DLL是在框架3.5中构建的。我引用DLL的项目是用2.0构建的。我将引用项目切换到3.5并且构建完美。

答案 4 :(得分:0)

我对引用相同版本框架的项目有这个问题。我通过以下步骤解决了这个问题。

  1. 删除对DLL的引用
  2. 清理并重建DLL
  3. 清理并重建项目
  4. 重新添加参考。

答案 5 :(得分:0)

这发生在我的 Visual Studio 2019 VB 项目中,带有 System.Data.SqlClient 。由于 System.Data.SqlClient 的导入失败,我在页面上的声明中使用的所有 Sql 类 -- SqlConnection、SqlCommand、SqlDataReader -- 都未定义。

为了解决这个问题,我只需要在为页面上的一个类声明我的第一个变量时使用对 System.Data.SqlClient.SqlConnection 的完整引用:

Using conn As System.Data.SqlClient.SqlConnection = New SqlConnection(GetConnectionString())

通过更改页面上的第一个声明,它修复了导入行和页面上所有后续声明上的编译错误。 (更奇怪的是,在像这样构建项目之后,我能够将声明恢复为仅引用 SqlConnection,并且导入工作并且页面编译正常。所以这可能是一个与我的临时修复无关的临时问题)