Partager via


La valeur de type '<NomType1>' ne peut pas être convertie en '<NomType2>'

Mise à jour : novembre 2007

Message d'erreur

La valeur de type '<NomType1>' ne peut pas être convertie en '<NomType2>'. L'incompatibilité de type peut résulter de la combinaison d'une référence de fichier et d'une référence de projet pour l'assembly '<NomAssembly>'. Essayez de remplacer la référence de fichier pour '<CheminFichier>' dans le projet '<NomProjet1>' par une référence de projet pour '<NomProjet2>'.
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>'.

Lorsqu'un projet crée une référence de projet et une référence de fichier, le compilateur ne peut pas garantir qu'un type soit converti en un autre.

Le pseudo-code suivant illustre une situation qui peut générer cette erreur.

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

Le projet P1 crée une référence de projet indirecte par l'intermédiaire du projet P2 pour le projet P3, et une référence de fichier directe pour P3. La déclaration de commonObject utilise la référence de fichier pour P3, alors que l'appel à P2.getCommonClass utilise la référence de projet pour P3.

Le problème dans ce cas est que la référence de fichier spécifie un chemin d'accès et un nom pour le fichier de sortie de P3 (en général, p3.dll), alors que les références de projet identifient le projet source (P3) par le nom du projet. De ce fait, le compilateur ne peut pas garantir que le type P3.commonClass provienne du même code source pour les deux références différentes.

Cette situation se produit généralement lorsque les références de projet et les références de fichier sont associées. Dans l'illustration précédente, le problème ne se produirait pas si P1 crée une référence de projet directe pour P3 au lieu d'une référence de fichier.

ID d'erreur : BC30955

Pour corriger cette erreur

  • Remplacez la référence de fichier par une référence de projet.

Voir aussi

Tâches

Comment : ajouter ou supprimer des références dans Visual Studio (Visual Basic)

Concepts

Références de projet

Autres ressources

Conversions de type en Visual Basic

Références aux espaces de noms et aux composants

Gestion des références