Compilerfehler CS1703

Es wurde bereits eine Assembly mit dem einfachen Namen „Name“ importiert. Entfernen Sie einen der Verweise, oder signieren Sie die Verweise, damit sie parallel verwendet werden können.

Der Compiler entfernt Referenzen, die über denselben Pfad und Dateinamen verfügen. Allerdings ist es möglich, dass dieselbe Datei an zwei Speicherorten vorhanden ist oder dass Sie vergessen haben, die Versionsnummer zu ändern. Dieser Fehler zeigt auf, dass zwei Referenzen über dieselbe Assemblyidentität verfügen und der Compiler deshalb in den Metadaten nicht zwischen ihnen unterscheiden kann. Entfernen Sie entweder eine der redundanten Referenzen, oder machen Sie die Referenzen eindeutig, z.B. indem Sie die Versionsnummer der Assembly erhöhen.

Der folgende Code generiert den Fehler CS1703.

Beispiel 1

Dieser Code erstellt Assembly A im Verzeichnis „.\bin1“.

Speichern Sie dieses Beispiel in einer Datei mit dem Namen „CS1703a1.cs“, und kompilieren Sie diese mit den folgenden Flags: /t:library /out:.\bin1\cs1703.dll /keyfile:key.snk

using System;  
public class A { }  

Beispiel 2

Dieser Code erstellt eine Kopie von Assembly A im Verzeichnis „.\bin2“.

Speichern Sie dieses Beispiel in einer Datei mit dem Namen „CS1703a2.cs“, und kompilieren Sie diese mit den folgenden Flags: /t:library /out:.\bin2\cs1703.dll /keyfile:key.snk

using System;  
public class A { }  

Beispiel 3

Dieser Code verweist in den zwei vorherigen Modulen auf Assembly A.

Speichern Sie dieses Beispiel in einer Datei mit dem Namen „CS1703ref.cs“, und kompilieren Sie diese mit den folgenden Flags: /t:library /r:A2=.\bin2\cs1703.dll /r:A1=.\bin1\cs1703.dll

extern alias A1;  
extern alias A2;