Freigeben über


Der Wert vom Typ '<Typname1>' kann nicht zu '<Typname2>' konvertiert werden

Aktualisiert: November 2007

Fehlermeldung

Der Wert des Typs "<Typname1>" kann nicht zu "<Typname2>" konvertiert werden. Der Typenkonflikt könnte auf das Mischen eines Dateiverweises mit einem Projektverweis auf Assembly "<Assemblyname>" zurückzuführen sein. Ersetzen Sie den Dateiverweis auf "<Dateipfad>" in Projekt "<Projektname1>" durch einen Projektverweis auf "<Projektname2>"
Value of type '<typename1>' cannot be converted to '<typename2>'. Type mismatch could be due to the mixing of a file reference with a project reference to assembly '<assemblyname>'. Try replacing the file reference to '<filepath>' in project '<projectname1>' with a project reference to '<projectname2>'.

Wenn ein Projekt sowohl einen Projektverweis als auch einen Dateiverweis enthält, kann der Compiler die Konvertierung zwischen den Typen nicht gewährleisten.

Im folgenden Pseudocode wird eine Situation veranschaulicht, die diesen Fehler verursachen kann.

' ================ Visual Basic project P1 ================

' P1 makes a PROJECT REFERENCE to project P2

' and a FILE REFERENCE to project P3.

Public commonObject As P3.commonClass

commonObject = P2.getCommonClass()

' ================ Visual Basic project P2 ================

' P2 makes a PROJECT REFERENCE to project P3

Public Function getCommonClass() As P3.commonClass

Return New P3.commonClass

End Function

' ================ Visual Basic project P3 ================

Public Class commonClass

End Class

Projekt P1 enthält einen indirekten Projektverweis über Projekt P2 auf Projekt P3 sowie einen direkten Dateiverweis auf P3. In der Deklaration von commonObject wird der Dateiverweis auf P3 verwendet, während im Aufruf von P2.getCommonClass der Projektverweis auf P3 verwendet wird.

Das Problem in diesem Fall ist, dass im Dateiverweis ein Dateipfad und -name für die Ausgabedatei von P3 (normalerweise p3.dll) angegeben wird, während die Projektverweise das Quellprojekt (P3) mit dem Projektname bezeichnen. Daher kann der Compiler nicht gewährleisten, dass der Typ P3.commonClass von demselben Quellcode über zwei unterschiedliche Verweise stammt.

Diese Situation tritt i. d. R. auf, wenn Projektverweise und Dateiverweise gemeinsam verwendet werden. Im vorhergehenden Beispiel tritt das Problem nicht auf, wenn P1 statt eines Dateiverweises einen direkten Projektverweis auf P3 enthält.

Fehler-ID: BC30955

So beheben Sie diesen Fehler

  • Ändern Sie den Dateiverweis in einen Projektverweis.

Siehe auch

Aufgaben

Gewusst wie: Hinzufügen oder Entfernen von Verweisen in Visual Studio (Visual Basic)

Konzepte

Projektverweise

Weitere Ressourcen

Typkonvertierung in Visual Basic

Verweisen auf Namespaces und Komponenten

Verwalten von Verweisen