Error del compilador CS0433

Actualización: noviembre 2007

Mensaje de error

El tipo NombreTipo1 existe tanto en NombreTipo2 como en NombreTipo3
The type TypeName1 exists in both TypeName2 and TypeName3

Dos ensamblados diferentes a los que la aplicación hace referencia contienen el mismo espacio de nombres y tipo, lo que produce ambigüedad.

Para resolver este error, utilice la característica de alias de la opción de compilador /reference (Importar metadatos) (Opciones del compilador de C#) o no haga referencia a uno de los ensamblados.

Ejemplo

Este código crea el archivo DLL con la primera copia del tipo ambiguo.

// CS0433_1.cs
// compile with: /target:library
namespace TypeBindConflicts 
{
   public class AggPubImpAggPubImp {}
}

Este código crea el archivo DLL con la segunda copia del tipo ambiguo.

// CS0433_2.cs
// compile with: /target:library
namespace TypeBindConflicts 
{
   public class AggPubImpAggPubImp {}
}

En el siguiente ejemplo se genera el error CS0433.

// CS0433_3.cs
// compile with: /reference:cs0433_1.dll /reference:cs0433_2.dll
using TypeBindConflicts;
public class Test 
{
   public static void Main() 
   {
      AggPubImpAggPubImp n6 = new AggPubImpAggPubImp();   // CS0433
   }
}

En el siguiente ejemplo se muestra cómo utilizar la característica de alias de la opción de compilador /reference para resolver este error CS0433.

// CS0433_4.cs
// compile with: /reference:cs0433_1.dll /reference:TypeBindConflicts=cs0433_2.dll
using TypeBindConflicts;
public class Test 
{
   public static void Main() 
   {
      AggPubImpAggPubImp n6 = new AggPubImpAggPubImp();
   }
}