找不到命名空间!

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

我从ConsoleApp引用了Foo.Common并输入:

 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

我为什么要这个?

这是怎么回事?

确保这一点

  • ConsoleApp项目引用了Foo.Common 项目 (不要浏览Foo.Common.dll),

    截图

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

  • 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(); } } } 

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

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

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

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

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

尝试

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

代替。

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

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

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