VS2010拒绝编译命名空间,表示它不存在

时间:2011-01-24 17:55:10

标签: c# asp.net visual-studio visual-studio-2010

我将我的项目从Win XP转移到另一台计算机Win 7.安装完成后,我意识到我的App_code文件夹中的某些内容,如mydata.web.utils命名空间,有一个名为WebConstants的类(公共类和公共职能)。

现在在global.asax这样的领域,它告诉我“WebConstants在这种情况下不存在”

即使我有:

<%@ Import Namespace="mydata.web.utils" %>

webconstants.cs有:

namespace mydata.web.utils
{
  public class WebConstants
  {
   public static String APPLICATION_VERSION = "version";
  ........
  }
}

webconstants.cs中没有语法错误或编译器错误

但在其他地方,它说'什么是'网络'?“

如果我将名称空间从“web.utils”重命名为“web”,那么问题仍然存在。如果我将“web.utils”重命名为“wez” - 那么编译器错误就会消失。

但是我不能这样做,因为那时我必须在整个项目中改变它,这是一项很大的工作。

我还在“构建输出”中注意到项目中没有编译App_code。也许是因为它是一个ASP.net文件夹,我不确定。这是正常的吗?

同样的源代码,相同的visual studio,如何在win7中产生错误,在winXP计算机中没有错误?

4 个答案:

答案 0 :(得分:6)

右键单击webcontants.cs文件,然后转到“属性”。检查以确保'Build Action'设置为'Compile'。它可以设置为“内容”,在这种情况下VS不会接收它。

答案 1 :(得分:3)

如果在其他项目中有此命名空间,请确保同时添加对Web项目的引用。

此外,请确保正在构建名称空间“mydata.web.utils”的项目正在构建中。

在构建失败后,您还可以在Visual Studio的“输出”窗口中更改详细信息的级别:(工具 - >选项 - &gt;项目和解决方案 - &gt;构建并运行,选择“正常” ,以便查看更多细节)。您可以在我的博客上详细了解此问题:Error “ILMerge.Merge: The target assembly ‘blabla.blabla’ lists itself as an external reference” building a setup project

答案 2 :(得分:1)

好好在下面的另一个答案中阅读你的意见让我明白了最新情况......

请看这个链接: namespace or class could not be found (ASP.NET WebSite "project")

您需要将当前项目(即asp.net 网站)转换为 Web应用程序

答案 3 :(得分:1)

您是否尝试过构建项目?您是否在加载后验证项目中是否有任何缺少的DLL引用?