Partilhar via


Valor do tipo '<typename1>' não pode ser convertido para '<typename2>'.

Mensagem de erro

O valor do tipo '<typename1>' não pode ser convertido em '<typename2>'.A incompatibilidade de tipo pode ser devido à combinação de uma referência de arquivo com um referência de projeto para o conjunto de módulos (assembly) '<assemblyname>'.Substitua a referência de arquivo para '<filepath>' no projeto '<projectname1>' com uma referência de projeto para '<projectname2>'.

Numa situação na qual um projeto faz uma referência de projeto e uma referência de arquivo, o compilador não pode garantir que um tipo possa ser convertido para outro.

O pseudocódigo a seguir ilustra uma situação que pode gerar esse erro.

' ================ 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

Projeto P1 faz um referência de projeto indireta através do projeto P2 para o projeto P3 e também uma referência a P3 .A declaração de commonObject usa a referência de arquivo para P3,enquanto a chamada para P2.getCommonClass usa a referência de projeto para P3.

O problema nessa situação é que a referência do arquivo especifica um caminho do arquivo e nome para o arquivo de saída de P3 (geralmente p3.dll), enquanto que as referências do projeto identificam o projeto de origem (P3) pelo nome do projeto.Devido a isso, o compilador não pode garantir que o tipo P3.commonClass vem do mesmo código-fonte por meio de duas referências diferentes.

Essa situação geralmente ocorre quando as referências de projeto e referências do arquivo estão misturadas.Na ilustração anterior, o problema não ocorreria se P1 fez um referência de projeto para P3 em vez de uma referência de arquivo.

ID de erro: BC30955

Para corrigir este erro

  • Altere a referência de arquivo para um referência de projeto.

Consulte também

Tarefas

Como: Adicionar ou remover referências no Visual Studio (Visual Basic)

Conceitos

Referências do projeto

Outros recursos

Conversões de Tipo no Visual Basic

Referenciando Namespaces e Componentes

Gerenciando referências