Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Suponiendo que la referencia de ensamblado "Nombre del ensamblado #1" coincide con "Nombre del ensamblado #2", puede que necesite proporcionar la directiva en tiempo de ejecución.
Los dos ensamblados difieren en el número de versión. Para que se produzca la unificación, debe especificar directivas en el archivo .config de la aplicación, y debe proporcionar el nombre seguro correcto de un ensamblado, como se ha demostrado en el siguiente código de ejemplo.
Ejemplo 1
El siguiente ejemplo de múltiples archivos hace referencia a un ensamblado que usa dos alias externos diferentes. Este primer ejemplo compila la versión anterior del código que crea el ensamblado CS1701_d.
// CS1701_a.cs
// compile with: /target:library /out:cs1701_d.dll /keyfile:mykey.snk
using System.Reflection;
[assembly:AssemblyVersion("1.0")]
public class A {
public void M1() {}
}
public class C1 {}
Ejemplo 2
Este es el código que crea la versión más reciente del ensamblado CS1701_d. Tenga en cuenta que se compila en un directorio diferente que la versión anterior, que es necesario porque los archivos de salida tienen los mismos nombres.
// CS1701_b.cs
// compile with: /target:library /out:c:\\cs1701_d.dll /keyfile:mykey.snk
using System.Reflection;
[assembly:AssemblyVersion("2.0")]
public class A {
public void M2() {}
public void M1() {}
}
public class C2 {}
public class C1 {}
Ejemplo 3
En este ejemplo se configuran los alias externos A1 y A2.
// CS1701_c.cs
// compile with: /target:library /reference:A2=c:\\cs1701_d.dll /reference:A1=cs1701_d.dll
extern alias A1;
extern alias A2;
// using System;
using a1 = A1::A;
using a2 = A2::A;
public class Ref {
public static a1 A1() { return new a1(); }
public static a2 A2() { return new a2(); }
public static A1::C1 M1() { return new A1::C1(); }
public static A2::C2 M2() { return new A2::C2(); }
}
Ejemplo 4
Este ejemplo llama a los métodos con dos alias diferentes de A. El ejemplo siguiente genera C1701.
// CS1701_d.cs
// compile with: /reference:c:\\CS1701_d.dll /reference:CS1701_c.dll
// CS1701 expected
class Tester {
public static void Main() {
Ref.A1().M1();
Ref.A2().M2();
}
}