【发布时间】:2015-02-16 06:46:58
【问题描述】:
我创建了一个名为 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
为什么我会得到这个?
发生了什么事?
【问题讨论】:
-
CommonClass 是否声明为
public?如果没有,则不能在 Foo.Common 类库之外使用它。 -
您在使用 Visual Studio 吗?如果是这样,对象浏览器(查看菜单)将向您显示加载的命名空间。
-
它显示的是 Foo.Common。但是编译器正在寻找 Foo 命名空间。什么鬼?
-
将 using 语句移出命名空间声明?
-
如果你有一个
using Foo.Bar.Baz;指令并且编译器找不到Foo.Bar.Baz,它会寻找Foo.Bar。如果找不到,它会寻找Foo。如果它也找不到,它说找不到Foo,即使它最初正在寻找Foo.Bar.Baz。