Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Если ссылка на сборку "Имя сборки 1" соответствует "Имя сборки 2", может понадобиться предоставить политику времени выполнения
Две сборки имеют разные номера выпуска и (или) версии. Для унификации необходимо указать директивы в CONFIG-файле приложения и предоставить правильное строгое имя сборки, как показано в следующем примере кода.
Пример 1
В следующем примере с несколькими файлами ссылка на сборку задается с использованием двух разных внешних псевдонимов. В первом примере выполняется построение старой версии кода, в результате чего создается сборка 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 {}
Пример 2
Этот код создает более новую версию сборки CS1701_d. Обратите внимание, что компиляция осуществляется в каталог, отличный от каталога старой версии, поскольку выходные файлы имеют одинаковые имена.
// 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 {}
Пример 3
В этом примере задаются внешние псевдонимы A1 и 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(); }
}
Пример 4
В этом примере методы вызываются с использованием двух разных псевдонимов A. В следующем примере возникает ошибка 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();
}
}