19 Stimmen

VS2008 C# Compilerfehler: "'.ctor' wird von der Sprache nicht unterstützt"

Ich habe diesen Fehler vom C#-Compiler in VS2008 erhalten. Beim Googeln habe ich nichts Nützliches gefunden. Ich habe diesen Fehler noch nie gesehen. Kann jemand Licht ins Dunkel bringen?

Die betreffende Codezeile ist die Instanziierung einer von mir definierten Klasse:

Frame frame = new Frame( // verschiedene Argumente...

Ja, der Konstruktor existiert. Wenn er das nicht täte, wäre es ein völlig anderer Fehler. Es gibt keine anderen Kompilierungsfehler. Das ist der einzige Punkt im Projekt, an dem diese Klasse instanziiert wird. Im Moment bin ich eher neugierig.

(Bearbeitung) Auf Anfrage, die Klassenkonstruktordefinitionen:

Dies ist derjenige, den ich aufrufe:

public Frame(int startTime, int length, byte commandId)

Der andere nimmt ein Objekt als Parameter. Dieses Objekt enthält die Daten, die der andere Konstruktor liefert:

public Frame(Command command)

Die genannte Command Klasse ist in einer separaten Assembly definiert, die referenziert und fehlerfrei kompiliert wird.

18voto

redman Punkte 1510

Ich denke, ich habe die Antwort gefunden. Oder zumindest die Ursache dieses spezifischen Fehlers.

Ich habe mir die beteiligten Dateien angesehen und nach veralteten oder anderen inkonsistenten Dateien gesucht. Eine der Assemblys war in der Vergangenheit datiert. VS hat sie ohne Fehler erstellt, aber das Änderungsdatum der Zieldatei hat sich nicht geändert. Erst als ich diese Assembly manuell gelöscht und neu erstellt habe, erschien eine aktuelle Binärdatei.

Danach habe ich keine Compilerfehlermeldung mehr erhalten.

1voto

JaredPar Punkte 699699

Ist Frame in einer C++/CLI-Assembly definiert? Wenn ja, könnte der Konstruktor Parameter enthalten, die vom C#-Compiler nicht unterstützt werden.

0voto

AdminPro Punkte 1

Fehler beim Build **"Wird nicht von der Sprache unterstützt"** in Visual Studio lösen

Alte Datei .DLL löschen und Projekt neu erstellen
+ Alte .dll-Datei im aktuellen Projekt entfernen
+ Neue Datei .dll als Referenz zum Projekt hinzufügen

Warum?
Weil, wenn Sie eine neue Referenz aktualisieren, kann es zu Konflikten (doppelte dll) im Projekt kommen
1. Alte DLL im aktuellen Projekt und
2. DLL gerade als neue Referenz hinzugefügt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X