Fehler und Warnungen im Zusammenhang mit Assembly-Verweisen beheben

  • CS0012: Der Typ "Type" wird in einer Assembly definiert, auf die nicht verwiesen wird. Sie müssen einen Verweis auf die Assembly "Assembly" hinzufügen.
  • CS0234: Der Typ- oder Namespacename ist im Namespace nicht vorhanden (fehlt ein Assemblyverweis?)
  • CS0246: Der Typ- oder Namespacename wurde nicht gefunden (möglicherweise fehlt eine using-Anweisung oder ein Assemblyverweis).
  • CS0400: Der Typ oder Namespacename wurde im globalen Namespace nicht gefunden (fehlt ein Assemblyverweis?)
  • CS1068: Der Typname wurde im globalen Namespace nicht gefunden. Dieser Typ wurde an eine andere Assembly weitergeleitet. Erwägen Sie das Hinzufügen eines Verweises auf diese Assembly.
  • CS1069: Der Typname wurde im Namespace nicht gefunden. Dieser Typ wurde an eine andere Assembly weitergeleitet. Erwägen Sie das Hinzufügen eines Verweises auf diese Assembly.
  • CS1070: Der Typname wurde nicht gefunden. Dieser Typ wurde an eine andere Assembly weitergeleitet. Erwägen Sie das Hinzufügen eines Verweises auf diese Assembly.
  • CS1704: Eine Assembly mit demselben einfachen Namen wurde bereits importiert. Versuchen Sie, einen der Verweise zu entfernen oder zu signieren, um sie nebeneinander zu aktivieren.
  • CS1714: Die Basisklasse oder Schnittstelle dieses Typs konnte nicht aufgelöst werden oder ist ungültig.
  • CS1760: Mehrere Assemblys verweisen auf dieselben Metadaten, aber nur eine ist ein verknüpfter Verweis (angegeben mit /link-Option); erwägen Sie, einen der Verweise zu entfernen.
  • CS7008: Der Assemblyname ist reserviert und kann nicht als Verweis in einer interaktiven Sitzung verwendet werden.
  • CS7068: Verweis auf Typansprüche, die in dieser Assembly definiert sind, aber nicht in der Quelle oder in hinzugefügten Modulen definiert sind.
  • CS7069: Verweis auf einen Typ, der angibt, er sei in einer anderen Assembly definiert, aber nicht gefunden werden konnte.
  • CS7071: Assemblyverweis ist ungültig und kann nicht aufgelöst werden.
  • CS7079: Der Typ wird in einem Modul definiert, das nicht hinzugefügt wurde. Sie müssen das Modul hinzufügen.
  • CS8090: In einer Assembly, auf die verwiesen wird, ist ein Fehler aufgetreten.
  • CS8203: Ungültiger Assemblyname.
  • CS8206: Modul „Name des Moduls“ in Assembly „Name der Assembly“ leitet den Typ „Name des Typs“ an mehrere Assemblys weiter: „Name der ersten Assembly“ und „Name der zweiten Assembly“.
  • CS8356: Der vordefinierte Typ "Typname" ist in mehreren referenzierten Assemblys deklariert: "erster Assemblyname" und "zweiter Assemblyname"
  • CS9286: Der Typ enthält keine Definition, und es konnte kein zugängliches Erweiterungselement für den Empfängertyp gefunden werden (fehlt eine using-Direktive oder ein Assemblyverweis?)

Darüber hinaus behandelt dieser Artikel die folgenden Warnungen:

  • CS1683: Der Verweis auf den Typ „Typ Name“ behauptet, dass er in dieser Assembly definiert ist, aber er ist weder im Quellcode noch in einem der hinzugefügten Module definiert.

Fehlende Verweise

Die folgenden Fehler und Warnungen deuten darauf hin, dass ein Assemblyverweis fehlt:

  • CS0012: Der Typ "Type" wird in einer Assembly definiert, auf die nicht verwiesen wird. Sie müssen einen Verweis auf die Assembly "Assembly" hinzufügen.
  • CS0234: Der Typ- oder Namespacename ist im Namespace nicht vorhanden (fehlt ein Assemblyverweis?)
  • CS0246: Der Typ- oder Namespacename wurde nicht gefunden (möglicherweise fehlt eine using-Auslassung oder ein Assemblyverweis).
  • CS1714: Die Basisklasse oder Schnittstelle dieses Typs konnte nicht aufgelöst werden oder ist ungültig.
  • CS9286: Typ enthält keine Definition und es konnte kein zugängliches Erweiterungselement für den Empfängertyp gefunden werden (fehlt Ihnen eine using-Direktive oder ein Assemblyverweis?)

Diese Compilerfehler deuten auf eines der folgenden Probleme in Ihrem Code hin:

Wenn scheinbar auf die Assembly verwiesen wird

Wenn auf die Assembly in Ihrem Projekt verwiesen wird, Sie aber weiterhin CS0012 erhalten, probieren Sie die folgenden Schritte zur Problembehandlung aus:

  • Wiederherstellen von Paketen: Führen Sie die Ausführung aus dotnet restore , um sicherzustellen, dass alle Paketverweise ordnungsgemäß aufgelöst werden, insbesondere nach der Installation oder Deinstallation von NuGet-Paketen.

  • Löschen Sie den NuGet-Paketcache, und stellen Sie folgendes wieder her:

    dotnet nuget locals all --clear
    dotnet restore
    
  • Überprüfen Sie auf Versionskonflikte: Überprüfen Sie, ob alle referenzierten Assemblys kompatible Versionen verwenden. Suchen Sie nach Bindungsumleitungswarnungen im Build-Output.

  • Bereinigen Sie die Lösung, und erstellen Sie sie neu, um sicherzustellen, dass keine veralteten Verweise verbleiben:

    dotnet clean
    dotnet build
    
  • Überprüfen Sie die Paketintegrität: Wenn der Fehler nach Paketvorgängen aufgetreten ist, stellen Sie sicher, dass das Paket ordnungsgemäß installiert wurde, indem Sie es entfernen und erneut installieren:

    dotnet remove package [PackageName]
    dotnet add package [PackageName]
    

Typweiterleitung

  • CS1068: Der Typname wurde im globalen Namespace nicht gefunden. Dieser Typ wurde an eine andere Assembly weitergeleitet. Erwägen Sie das Hinzufügen eines Verweises auf diese Assembly.
  • CS1069: Der Typname wurde im Namespace nicht gefunden. Dieser Typ wurde an eine andere Assembly weitergeleitet. Erwägen Sie das Hinzufügen eines Verweises auf diese Assembly.
  • CS1070: Der Typname wurde nicht gefunden. Dieser Typ wurde an eine andere Assembly weitergeleitet. Erwägen Sie das Hinzufügen eines Verweises auf diese Assembly.
  • CS8206: Modul "Modulname" in Assembly "Assemblyname" leitet den Typ "Typname" an mehrere Assemblies weiter: "Name der ersten Assembly" und "Name der zweiten Assembly".

CS1068, CS1069 und CS1070 geben einen Fehler an, der auf einen Typ verweist, der an eine andere Assembly weitergeleitet wird. Fügen Sie einen Verweis auf die in der Fehlermeldung angegebene Assembly hinzu.

CS8206 gibt widersprüchliche Typweiterleitungsmetadaten in einer Assembly oder einem Modul an, auf die verwiesen wird. Derselbe Typ wird an mehrere Zielassemblys weitergeleitet. Verwenden Sie korrigierte oder neu erstellte Abhängigkeiten, die den Typ an ein Ziel weiterleiten. Stellen Sie sicher, dass Paket- und Assemblyversionen konsistent sind, oder entfernen Sie den Verweis, der die widersprüchlichen Metadaten einführt. Quellalias oder nicht verknüpfte Änderungen an lokalen Typdeklarationen korrigieren die referenzierten Metadaten nicht.

Doppelte Verweise

Die folgenden Fehler deuten auf einen doppelten Assemblyverweis hin:

  • CS1704: Eine Assembly mit demselben einfachen Namen wurde bereits importiert. Versuchen Sie, einen der Verweise zu entfernen oder zu signieren, um sie nebeneinander zu aktivieren.
  • CS1760: Mehrere Assemblys verweisen auf dieselben Metadaten, aber nur eine ist ein verknüpfter Verweis (angegeben mit /link-Option); erwägen Sie, einen der Verweise zu entfernen.
  • CS8356: Der vordefinierte Typ "Typname" ist in mehreren referenzierten Assemblys deklariert: "Name der ersten Assembly" und "Name der zweiten Assembly"

Um diese Fehler zu beheben, entfernen Sie einen der Verweise, oder beheben Sie die Duplizierung. Ursachen für Duplizierung sind:

  • Mehrere nicht signierte Assemblys mit demselben Namen.
  • Ihr Projekt verweist auf mehrere Versionen derselben Assembly.

Entfernen oder ersetzen Sie für CS8356 den doppelten oder inkompatiblen Verweis, der denselben vordefinierten Laufzeittyp definiert. Stellen Sie sicher, dass das Projekt auf ein einziges kohärentes Framework und einen Satz von Referenzassemblies abzielt. Fügen Sie keine weitere Quelldefinition des vordefinierten Typs hinzu.

Ungültiger Assemblyverweis

Die folgenden Fehler deuten darauf hin, dass ein Assemblyverweis ungültig ist:

  • CS7008: Der Assemblyname ist reserviert und kann nicht als Verweis in einer interaktiven Sitzung verwendet werden.
  • CS7068: Verweis auf Typansprüche, die in dieser Assembly definiert sind, aber nicht in der Quelle oder in hinzugefügten Modulen definiert sind.
  • CS7069: Verweis auf Typansprüche, die in einer anderen Assembly definiert sind, aber nicht gefunden werden konnten.
  • CS7071: Assemblyverweis ist ungültig und kann nicht aufgelöst werden.
  • CS7079: Der Typ wird in einem Modul definiert, das nicht hinzugefügt wurde. Sie müssen das Modul hinzufügen.
  • CS8090: In einer Assembly, auf die verwiesen wird, ist ein Fehler aufgetreten.
  • CS8203: Ungültiger Assemblyname.

Die folgende Warnung weist auch auf eine ungültige Verweisassembly hin:

  • CS1683: Der Verweis auf den Typ "Typname" behauptet, dass er in dieser Assembly definiert ist, aber er ist weder in der Quelle noch in hinzugefügten Modulen definiert

Überprüfen Sie, ob Sie den Namen der Assembly richtig geschrieben haben. Die referenzierte Assemblydatei ist möglicherweise ungültig.