找不到命名空间!

时间:2011-07-15 02:30:20

标签: c# .net reference using

我创建了一个名为Foo的解决方案。 添加了一个名为Foo.Common的类库 添加了一个控制台应用程序,用于调用名为ConsoleApp的库代码。

我引用Foo.Common 中的ConsoleApp并输入:

using Foo.Common;
public class Program
{
    CommonClass c = new CommonClass();            

    static void Main(string[] args)
    {
    }
}

然后回来:

Error 1 The type or namespace name '**Foo**' could not be found (are you missing a using directive or an assembly reference?) Z:\Foo\Solution1\ConsoleApplication1\Program.cs 3 11 ConsoleApplication1

为什么我会这样做?

发生了什么事?

6 个答案:

答案 0 :(得分:6)

确保

  • ConsoleApp 项目引用 Foo.Common 项目(执行浏览for Foo.Common.dll),

    Screenshot

  • 该文件包含using指令,用于声明CommonClass的名称空间,

  • CommonClass被声明为public

所以你的文件应该是这样的:


Foo.Common 项目中的

CommonClass.cs

namespace Foo.Common
{
    public class CommonClass
    {
        public CommonClass()
        {
        }
    }
}

ConsoleApp 项目中的

Program.cs

using Foo.Common;

namespace ConsoleApp
{
    public class Program
    {
        public static void Main()
        {
            CommonClass x = new CommonClass();
        }
    }
}

答案 1 :(得分:2)

确保在项目设置下,目标框架设置为.NET Framework 4而不是.NET Framework 4 Client Profile。当它被设置为Client Profile时我得到了同样的行为,并且只要我将其设置为常规.NET Framework 4就会得到修复。

答案 2 :(得分:0)

右键单击新的控制台应用程序解决方案/项目和“添加引用”,然后添加包含Foo命名空间的项目

答案 3 :(得分:0)

您是否添加了对库的引用?查看控制台项目中的“参考”。如果不存在,则需要添加它。

答案 4 :(得分:0)

我发布此评论作为评论,但我想在此处进行扩展。可能发生的是它看到使用语句而不是关键字。看起来你有以下内容:

using System;
namespace TestNamespace
{
  using Foo.Common;
  public Class { }
}

尝试

using System;
using Foo.Common;
namespace TestNamespace
{
  public Class { } 
}

相反。

答案 5 :(得分:0)

看起来Foo Bar得到了这个错误,因为他的项目的目标框架被设置为客户端配置文件。

只是想我再添加一个'解决方案' - 我创建了一个针对4.5框架的库。我的旧项目是关于4框架。我收到了这个错误。

将旧项目更改为4.5使其正常工作。