Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aggiornamento: novembre 2007
Messaggio di errore
Impossibile convertire il valore di tipo '<nometipo1>' in '<nometipo2>'. La mancata corrispondenza del tipo potrebbe essere dovuta alla presenza simultanea di un riferimento al file e di un riferimento di progetto all'assembly '<nomeassembly>'. Provare a sostituire il riferimento di file a '<percorsofile>' del progetto '<nomeprogetto1>' con un riferimento di progetto a '<nomeprogetto2>'.
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>'.
In una situazione in cui in un progetto viene creato un riferimento al progetto e un riferimento al file, il compilatore non sarà in grado di garantire che un tipo possa essere convertito in un altro.
Nello pseudo-codice descritto di seguito viene illustrata una situazione che può generare questo errore.
' ================ 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
Nel progetto P1 viene creato un riferimento di progetto indiretto dal progetto P2 al progetto P3, oltre a un riferimento di file diretto a P3. La dichiarazione di commonObject utilizza il riferimento di file a P3, mentre la chiamata a P2.getCommonClass utilizza il riferimento di progetto a P3.
Il problema di questa situazione dipende dal fatto che nel riferimento di file vengono specificati un percorso e un nome di file per il file di output di P3 (generalmente p3.dll), mentre nei riferimenti al progetto il progetto di origine (P3) viene identificato in base al nome del progetto. Per questo motivo, il compilatore non sarà in grado di garantire che il tipo P3.commonClass proviene dallo stesso codice di origine tramite i due diversi riferimenti.
Questa situazione si verifica generalmente quando sono presenti riferimenti di progetto e riferimenti di file contemporaneamente. Nell'illustrazione precedente, il problema non si verificherà se P1 farà un riferimento di progetto diretto a P3 anziché un riferimento di file.
ID errore: BC30955
Per correggere l'errore
- Trasformare un riferimento di file in un riferimento di progetto.
Vedere anche
Attività
Procedura: aggiungere o rimuovere riferimenti in Visual Studio (Visual Basic)
Concetti
Altre risorse
Conversioni di tipi in Visual Basic