BC30955: Un valor de tipo "<typename1>" no se puede convertir en "<typename2>"
Un valor de tipo "<typename1>" no se puede convertir en "<typename2>". El error de coincidencia de tipos puede deberse a la combinación de una referencia de archivo con una referencia de proyecto al ensamblado "<assemblyname>". Intente reemplazar la referencia de archivo a "<filepath>" en el proyecto "<projectname1>" por una referencia de proyecto a "<projectname2>".
En una situación en la que un proyecto hace tanto una referencia de proyecto como una referencia de archivo, el compilador no puede garantizar que un tipo se pueda convertir en otro.
En el pseudocódigo siguiente, se muestra una situación que puede generar este error.
' ================ 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
El proyecto P1
hace una referencia de proyecto indirecta a través del proyecto P2
al proyecto P3
y también una referencia de proyecto directa a P3
. La declaración de commonObject
utiliza la referencia de archivo a P3
, mientras que la llamada a P2.getCommonClass
utiliza la referencia de proyecto a P3
.
El problema en esta situación es que la referencia de archivo especifica una ruta de acceso a archivo y un nombre para el archivo de salida de P3
(por lo general, p3.dll), mientras que las referencias de proyecto identifican el proyecto de origen (P3
) por el nombre del proyecto. Por este motivo, el compilador no puede garantizar que el tipo P3.commonClass
proviene del mismo código fuente a través de las dos referencias distintas.
Esta situación suele producirse cuando se combinan las referencias de proyecto y las referencias de archivo. En la ilustración anterior, el problema no se produciría si P1
hiciera una referencia de proyecto directa a P3
en lugar de una referencia de archivo.
Identificador de error: BC30955
- Cambie la referencia de archivo a una referencia de proyecto.
Comentarios de .NET
.NET es un proyecto de código abierto. Seleccione un vínculo para proporcionar comentarios: