更新:2007 年 11 月

错误消息

类型“type”在未被引用的程序集中定义。必须添加对程序集“assembly”的引用。

未找到引用类型的定义。如果所需的 .DLL 文件没有包括在编译中,则可能发生这种情况。有关更多信息,请参见“添加引用”对话框/reference(导入元数据)(C# 编译器选项)

下面的编译序列将导致 CS0012:

 复制代码
// cs0012a.cs
// compile with: /target:library
public class A {}

然后:

 复制代码
// cs0012b.cs
// compile with: /target:library /reference:cs0012a.dll
public class B
{
   public static A f()
   {
      return new A();
   }
}

然后:

 复制代码
// cs0012c.cs
// compile with: /reference:cs0012b.dll
class C
{
   public static void Main()
   {
      object o = B.f();   // CS0012
   }
}

可以通过使用 /reference:b.dll;a.dll 进行编译来解决此 CS0012 错误。