Ostrzeżenie kompilatora (poziom 2) CS1701

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();  
   }  
}