【问题标题】:What must I do to let an aspx.vb file see a .vb file in the same project?我必须怎么做才能让 aspx.vb 文件在同一个项目中看到 .vb 文件?
【发布时间】:2016-12-05 21:29:58
【问题描述】:

我在该行的项目 (\\alf.aspx > alf.aspx.vb) 正下方的文件中收到编译错误“类型'commonClass'未定义”代码:

Dim pDAO As New commonClass

有这样一个类,在\\App_Code\commonClass.vb:

Public Class commonClass

“alf”需要什么才能看到“commonClass”?

这可能是一个非常基本(没有双关语)的问题,但我是 VB 的新手。

更新

这与旧项目中的代码“看到”其他代码有什么关系,而新代码则没有:在旧项目中,Visual Studio 菜单项是:

FILE
EDIT
VIEW
**WEBSITE**
BUILD
DEBUG
. . .

...而在新项目中,它们是:

FILE
EDIT
VIEW
**PROJECT**
BUILD
DEBUG
. . .

IOW,新项目(我使用 File > New Project > Templates > VB > New Project 创建)有一个“PROJECTS”菜单项,而旧项目有一个“WEBSITE”菜单项。

将其重新设置为文件 > 新网站 > ... 会有所作为吗?有没有办法在不经过的情况下将其更改为网站?

更新 2

可编译的旧代码和未编译的新项目都包含:

// alf.aspx.vb
Partial Class alf
    Inherits Page

-和:

// App_Code\commonClass.vb
Public Class commonClass

我在两个文件中都没有看到“命名空间”...

更新 3

所以,想知道我创建了一个新项目而不是一个新网站这一事实是否是问题的症结所在,我尝试创建一个新网站,但它告诉我,“具有相同密钥的项目已经添加”,然后网站项目——除了创建它我还没有触及它——从 21 个错误和 13 个警告开始

【问题讨论】:

  • 两个类是否在同一个命名空间中?
  • 请看更新2
  • 文件的构建动作是否设置为编译?
  • @Crowcoder:有趣 - 在旧版应用程序中,文件具有文件名和完整路径属性;在新应用中,它有几个属性,并且 Build Action 设置为“Content”
  • 设置为编译

标签: asp.net vb.net


【解决方案1】:

您有两个文件。一个用于您的 asp.net 文件 (alf.aspx.vb),另一个用于您的 commonClass(我假设为 commonClass.vb)。这两个文件是否都定义了 Namespace 并且它们都是相同的命名空间(alf)?如果它们不匹配,那么您将收到您所描述的错误。

Namespace alf
    Public Class commonClass
        Public Shared Sub Execute()
            Console.WriteLine("Blah")
        End Sub
    End Class
End Namespace

【讨论】:

  • 两个文件都没有定义命名空间。
【解决方案2】:

我用三管齐下的方法解决了这个范围广泛且令人困惑的问题,详细说明here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-29
    • 1970-01-01
    • 1970-01-01
    • 2012-02-06
    • 1970-01-01
    • 2011-07-25
    • 2018-12-30
    • 2011-11-23
    相关资源
    最近更新 更多