0

我在项目的根文件夹中有一个名为 Contact.vb 的公共 VB 类,在 App_Code 文件夹中有另一个名为 Service.vb 的 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

编辑#2:我终于发现出了什么问题。如果我在管理员模式下在 VS 中构建项目,它会成功构建,但如果我不在管理员模式下,它会失败。

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

4

3 回答 3

0

你确定你的课没有错字吗?如果您取出线路,您是否能够构建/运行项目:

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

然后设法使用 Dim ds... 线没有任何错误。

我确实有一个类似的问题,在此之前我通过重建解决方案进行了整理。

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

于 2013-10-09T12:36:23.000 回答
0

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

在这两种情况下,App_Code 文件夹的行为有很多不同......

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

另一件事:在 c# 中,命名空间是由 Visual Studio 默认创建的,在 vb.net 中(如果我没记错的话)不是。

于 2013-10-09T14:31:51.910 回答
0

我终于发现出了什么问题。如果我在管理员模式下在 VS 中构建项目,它会成功构建,但如果我不在管理员模式下,它会失败。

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

于 2013-10-10T07:13:16.057 回答