Ошибка компилятора CS0012

Обновлен: Ноябрь 2007

Сообщение об ошибке

Тип "тип" определен в сборке, на которую отсутствует ссылка. Необходимо добавить ссылку на сборку "сборка".
The type 'type' is defined in an assembly that is not referenced. You must add a reference to assembly '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
   }
}

Ошибку можно устранить CS0012, компилируя с параметрами /reference:b.dll;a.dll.