Error del compilador CS1704

Actualización: noviembre 2007

Mensaje de error

Ya se ha importado un ensamblado con el mismo nombre sencillo 'Nombre del ensamblado'. Intente quitar una de las referencias o fírmelas para habilitar la función de simultaneidad.
An assembly with the same simple name 'Assembly Name' has already been imported. Try removing one of the references or sign them to enable side-by-side.

Este error señala que hay dos referencias que tienen la misma identidad de ensamblado porque los ensamblados en cuestión carecen de nombres seguros, no se firmaron, por lo que el compilador no tiene forma de distinguir entre ellas mismas en los metadatos. Así, el motor en tiempo de ejecución omite las propiedades de versión y nombre del ensamblado de referencia cultural. El usuario deberá quitar la referencia redundante, cambiar el nombre de una de las referencias o proporcionar un nombre seguro para las mismas.

Ejemplo

En este ejemplo se crea un ensamblado y se guarda en el directorio raíz.

// CS1704_a.cs
// compile with: /target:library /out:c:\\cs1704.dll
public class A {}

Este ejemplo crea un ensamblado con el mismo nombre que el ejemplo anterior, pero lo guarda a una ubicación diferente.

// CS1704_b.cs
// compile with: /target:library /out:cs1704.dll
public class A {}

En este ejemplo se intenta hacer referencia a ambos ensamblados. El código siguiente genera el error CS1704.

// CS1704_c.cs
// compile with: /target:library /r:A2=cs1704.dll /r:A1=c:\\cs1704.dll
// CS1704 expected
extern alias A1;
extern alias A2;