Exportar (0) Imprimir
Expandir todo
Expandir Minimizar

Un valor de tipo '<nombre de tipo 1>' no se puede convertir a '<nombre de tipo 2>'

Mensaje de error

El valor de tipo '<nombre de tipo 1>' no se puede convertir en '<nombre de tipo 2>' La falta de coincidencia de los tipos se podría deber a la mezcla de una referencia de archivo con una referencia de proyecto al ensamblado '<nombre de ensamblado>'. Pruebe a reemplazar la referencia de archivo a '<ruta de archivo>' en el proyecto '<nombre de proyecto 1>' con una referencia de proyecto a '<nombre de proyecto 2>.
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>'.

En una situación en la que un proyecto realiza tanto una referencia de proyecto como una referencia de archivo, el compilador no puede garantizar que un tipo se pueda convertir en otro.

El pseudocódigo siguiente 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 realiza una referencia de proyecto indirecta a través del proyecto P2 al proyecto P3 y una referencia de archivo directa a P3. La declaración de commonObject utiliza la referencia de archivo a P3, mientras 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 y un nombre de archivo para el archivo de resultados de P3 (generalmente p3.dll), en tanto que las referencias de proyecto identifican el proyecto de origen (P3) por nombre de proyecto. Así, el compilador no puede garantizar que el tipo P3.commonClass procede del mismo código fuente desde las dos referencias diferentes.

Esta situación se produce normalmente cuando se mezclan las referencias de proyecto y referencias de archivo. En la ilustración anterior, el problema no se produciría si P1 realizase 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.

Vea también

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft