找不到命名空间!
我创建了一个名为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使其工作。