Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Przy założeniu, że odwołanie do zestawu "Nazwa zestawu #1" pasuje do "Nazwa zestawu #2", może być konieczne podanie zasad środowiska uruchomieniowego
Dwa zestawy różnią się numerem wydania i/lub wersji. Aby można było przeprowadzić zjednoczenie, należy określić dyrektywy w pliku .config aplikacji i należy podać poprawną silną nazwę zestawu, jak pokazano w poniższym przykładowym kodzie.
Przykład 1
Poniższy przykład z wieloma plikami odwołuje się do zestawu przy użyciu dwóch różnych aliasów zewnętrznych. Ten pierwszy przykład tworzy starszą wersję kodu, która tworzy CS1701_d zestawu.
// 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 {}
Przykład 2
Jest to kod, który tworzy nowszą wersję zestawu CS1701_d. Należy pamiętać, że kompiluje się w innym katalogu niż starsza wersja, ponieważ pliki wyjściowe mają takie same nazwy.
// 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 {}
Przykład 3
Ten przykład konfiguruje aliasy zewnętrzne A1 i 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(); }
}
Przykład 4
W tym przykładzie metody są wywoływane przy użyciu dwóch różnych aliasów A. Poniższy przykład generuje kod 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();
}
}