【问题标题】:Custom namespace not recognised in VS2008 Web ApplicationVS2008 Web 应用程序中无法识别自定义命名空间
【发布时间】:2012-11-20 17:06:06
【问题描述】:

我已将 C# ASP 网站转移为 C# ASP Web 应用程序。我这样做是为了我可以做一些事情,比如添加 Pre-Build 事件。

除了无法识别我在 App_Code 文件夹中的 .cs 文件中声明的某些命名空间之外,一切似乎都几乎正常工作。

我收到诸如

之类的构建错误

The type or namespace name 'nsAppGlobal' could not be found (are you missing a using directive or an assembly reference?)

我有一个 .cs 文件,它非常清楚地声明了这个命名空间。由于某种原因,Intellisense 和编译器都看不到它。

我听说我可以通过将我的命名空间构建到一个 dll 库中然后将 that 包含在 web 应用程序中来解决这个问题。这听起来很傻 - 因为我将如何编辑该代码?我必须在另一个项目中编辑并重建 dll?

有人遇到过这个问题吗?在 Web 应用程序项目中使用命名空间的最佳策略是什么?

【问题讨论】:

  • 您有多个项目吗?您是否在项目中包含您的文件?
  • 不,这一切都在一个项目中。我从其他项目中提取了几个 .cs 文件,它们声明了自己的命名空间。当项目是网站而不是 Web 应用程序时,这不是问题

标签: c# asp.net visual-studio-2008 asp.net-3.5


【解决方案1】:

migrating a web site to a web application: App_Code 目录由于其“神奇”的名称而被忽略时,我也注意到了这种行为。

解决方案很简单:只需重命名 App_Code 目录。

【讨论】:

  • 这听起来像是我正在寻找的解决方案!我会在早上试试这个。一个问题 - 我将 App_code 从什么重命名为什么?!
  • 嗯,这似乎不起作用。它不允许我重命名,所以我创建了一个名为Code 的新文件夹并将所有.cs 文件放在那里。同样的错误。我还注意到 System.Data 没有被识别......哦,亲爱的:(
  • 更新 我的实际问题是我认为与没有 .designer.cs 文件以及没有 App_Code 文件夹有关。我想如果我以正确的方式完成它而不是仅仅将文件复制到网络应用程序中,我就不会遇到这个问题。我最终这样做的方式是创建一个空白的网络应用程序并向其中添加新的网络表单,然后将我的代码粘贴进去。我只有 3 页,所以这不是什么大问题......
【解决方案2】:

有时将网站转换为 Web 应用程序时,Global.asax 命名空间会损坏。 Global.asax.cs 将具有正确的命名空间,但 Global.asax 不会。

<%@ Application Codebehind="Global.asax.cs" Inherits="WILD.MvcApplication" Language="C#" %>

默认情况下,当您打开 Global.asax 时,它会打开关联的 C# 文件。您想查看标记。确保属性“Inherits”与 Global.asax.cs 命名空间匹配。

【讨论】:

  • 嗨,我目前不在我的机器旁,但这听起来很有希望,所以你得到了 +1。我没有使用实际的转换工具或任何东西来转换它,我基本上将整个网页项目文件拖到了Web应用程序中。可能是一种愚蠢的做法,但我还不太了解网站和应用程序之间的区别。很确定我很快就会学会!
猜你喜欢
  • 2019-12-27
  • 2016-05-17
  • 2016-05-21
  • 2010-10-30
  • 1970-01-01
  • 2014-01-21
  • 2011-10-05
  • 2012-05-07
  • 2019-12-19
相关资源
最近更新 更多