Compilerwarnung (Stufe 2) CS1701

Es wird angenommen, dass der Assemblyverweis "Assemblyname1" mit "Assemblyname2" übereinstimmt. Möglicherweise müssen Sie eine Laufzeitrichtlinie bereitstellen.

Die zwei Assemblys unterscheiden sich in Release- und/oder Versionsnummer. Für den Fall der Zusammenführung müssen Sie Anweisungen in der Konfigurationsdatei der Anwendung angeben. Außerdem müssen Sie den richtigen starken Namen einer Assembly angeben, wie im folgenden Beispielcode veranschaulicht.

Beispiel 1

Im folgenden Beispiel mit mehreren Dateien wird mithilfe zweier verschiedener externer Aliase auf eine Assembly verwiesen. In diesem ersten Beispiel wird die frühere Codeversion erstellt, mit der Assembly CS1701_d erstellt wird.

// 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 {}  

Beispiel 2

Dies ist der Code, mit dem die neuere Version von Assembly CS1701_d erstellt wird. Beachten Sie, dass sich das Kompilierergebnis in einem anderen Verzeichnis als die ältere Version befindet, weil die Ausgabedateien dieselben Namen aufweisen.

// 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 {}  

Beispiel 3

In diesem Beispiel werden die externen Aliase A1 und A2 eingerichtet.

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

Beispiel 4

In diesem Beispiel werden Methoden mithilfe von zwei verschiedenen Aliasen von A aufgerufen. Im folgenden Beispiel wird C1701 generiert.

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