Vb.net App_代码文件夹中的VB类无法访问根文件夹中的VB类

Vb.net App_代码文件夹中的VB类无法访问根文件夹中的VB类,vb.net,class,Vb.net,Class,我在项目的根文件夹Contact.VB中有一个公共VB类,在App_Code文件夹中有另一个VB类Service.VB 如果我尝试在Service.vb中声明Contact类,如下所示: Dim ds As New Contact 我在编译时遇到此错误: 未定义“联系人”类型 我已经习惯了C#编码,所以我真的不明白我在这里遗漏了什么 编辑#1: 这是Contact类的第一部分。该类已基于架构生成 '--------------------------------------------

我在项目的根文件夹Contact.VB中有一个公共VB类,在App_Code文件夹中有另一个VB类Service.VB

如果我尝试在Service.vb中声明Contact类,如下所示:

Dim ds As New Contact
我在编译时遇到此错误:

未定义“联系人”类型

我已经习惯了C#编码,所以我真的不明白我在这里遗漏了什么

编辑#1:

这是Contact类的第一部分。该类已基于架构生成

    '------------------------------------------------------------------------------
' <autogenerated>
'     This code was generated by a tool.
'     Runtime Version: 1.1.4322.2300
'
'     Changes to this file may cause incorrect behavior and will be lost if 
'     the code is regenerated.
' </autogenerated>
'------------------------------------------------------------------------------

Option Strict Off
Option Explicit On

Imports System
Imports System.Data
Imports System.Runtime.Serialization
Imports System.Xml


<Serializable(),  _
 System.ComponentModel.DesignerCategoryAttribute("code"),  _
 System.Diagnostics.DebuggerStepThrough(),  _
 System.ComponentModel.ToolboxItem(true)>  _
Public Class Contact
    Inherits DataSet

    Private tableContact As ContactDataTable
'------------------------------------------------------------------------------
' 
'此代码是由工具生成的。
'运行时版本:1.1.4322.2300
'
'对此文件的更改可能会导致不正确的行为,如果
'代码将重新生成。
' 
'------------------------------------------------------------------------------
选择严格关闭
选项显式打开
导入系统
导入系统数据
导入System.Runtime.Serialization
导入System.Xml
_
公共类联系人
继承数据集
私有表Contact作为ContactDataTable
编辑#2: 我终于发现了问题所在。如果我在VS中以管理员模式构建项目,它将成功构建,但如果我未处于管理员模式,它将失败


我不知道为什么会这样,但我想可能是因为文件夹权限或类似的原因。

你确定你的类中没有拼写错误吗?如果删除以下行,您是否能够构建/运行项目:

Dim ds As New Contact
我试过你的课程:

'------------------------------------------------------------------------------
' <autogenerated>
'     This code was generated by a tool.
'     Runtime Version: 1.1.4322.2300
'
'     Changes to this file may cause incorrect behavior and will be lost if 
'     the code is regenerated.
' </autogenerated>
'------------------------------------------------------------------------------

Option Strict Off
Option Explicit On

Imports System
Imports System.Data
Imports System.Runtime.Serialization
Imports System.Xml


<Serializable(), _
 System.ComponentModel.DesignerCategoryAttribute("code"), _
 System.Diagnostics.DebuggerStepThrough(), _
 System.ComponentModel.ToolboxItem(True)> _
Public Class Contact
    Inherits DataSet

    'Private tableContact As ContactDataTable

End Class
'------------------------------------------------------------------------------
' 
'此代码是由工具生成的。
'运行时版本:1.1.4322.2300
'
'对此文件的更改可能会导致不正确的行为,如果
'代码将重新生成。
' 
'------------------------------------------------------------------------------
选择严格关闭
选项显式打开
导入系统
导入系统数据
导入System.Runtime.Serialization
导入System.Xml
_
公共类联系人
继承数据集
'专用表Contact作为ContactDataTable
末级
然后设法使用Dim ds。。。行没有任何错误

我确实遇到过类似的问题,在此之前,我通过重新构建解决方案进行了整理


您是否尝试过关闭和重新打开VS?

您的项目是web应用程序还是网站

在这两种情况下,App_代码文件夹的行为有很多不同

如果在C#中使用这种方法,通常在vb.net中没有区别


另一件事:在c#中,默认情况下名称空间是由visual studio创建的,而在vb.net(如果我记得正确的话)中则不是。

我终于发现了问题所在。如果我在VS中以管理员模式构建项目,它将成功构建,但如果我未处于管理员模式,它将失败


我不知道为什么会这样,但我想可能是因为文件夹权限或类似的原因。

它是包含在项目中还是仅包含在文件夹中?你能发布前几行联系方式吗?prj文件夹仅用于组织大型项目、表单、类等。只要文件/类在PRJI中,它们就不重要。如果文件/类在项目中,并且名称中没有键入错误,则应该可以使用。如果您在解决方案资源管理器中右键单击它,是否有“排除”或“包括”选项?是的,有“从项目中排除”选项。没有,没有输入错误,但我尝试将联系人类复制到App_Code文件夹中,然后成功了。啊,根据您的问题,我假设它已经存在:)