CS0012 de erro do compilador

Mensagem de erro

O tipo de 'tipo' é definido em um assembly que não é referenciado.Você deve adicionar uma referência ao assembly 'assembly'.

A definição de um tipo de referência não foi encontrada.Isso pode ocorrer se um arquivo .dll solicitado não está incluído na compilação.Para obter mais informações, consulte Caixa de diálogo Add Reference e /Reference (importação de metadados) (Opções do compilador translation from VPE for Csharp).

A seguinte sequência de compilações resultará em CS0012:

// cs0012a.cs
// compile with: /target:library
public class A {}

Em seguida:

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

Em seguida:

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

Você poderia resolver esta CS0012 compilando com /reference:b.dll;a.dll.