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
Weitere Ressourcen
Typkonvertierung in Visual Basic