2012-11-20 38 views
2

我已将C#ASP网站的内容移至C#ASP Web应用程序。我这样做,所以我可以做一些事情,比如添加预构建事件。在VS2008 Web应用程序中无法识别的自定义名称空间

除了一些我在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库中,然后在网络应用程序中包含来解决此问题。这听起来很愚蠢 - 因为我怎么编辑那些代码呢?我将不得不在另一个项目中编辑并重建dll?

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

+0

您是否涉及多个项目?你是否将你的文件包含在你的项目中? –

+0

没有这一切都在一个项目。我从其他声明自己命名空间的项目中提取了几个.cs文件。当项目是一个网站而不是一个Web应用程序时,这不是一个问题 –

回答

3

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

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

+0

这听起来像我正在寻找的解决方案!我会在早上尝试这个。一个问题 - 我将App_code从什么重命名为什么? –

+0

从“App_Code”到“Code”,或者任何你喜欢的名字...... – devio

+0

嗯,这似乎并没有奏效。它不会让我重命名,所以我创建了一个名为'Code'的新文件夹,并将所有'.cs'文件放在那里。同样的错误。另外我注意到'System.Data'没有被识别...哦,亲爱的:( –

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名称空间。

+0

嗨,我目前不在我的机器上,但这听起来很有希望,所以你得到了+1。我没有使用实际的转换工具或任何东西来转换它,我基本上拖动整个网页项目文件到Web应用程序。可能是一个愚蠢的做法,但我并不真正了解网站和应用程序之间的差异。很确定我很快就会学习! –

相关问题