Leer en inglés

Compartir a través de


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

Para corregir este error

  • Cambie la referencia de archivo a una referencia de proyecto.

Consulte también