Gestione di riferimenti a progetti

Prima di scrivere il codice rispetto a un componente esterno, il progetto deve anzitutto contenere un riferimento a tale componente.È possibile definire un riferimento ai tipi di componenti che seguono:

  • Librerie di classi o assembly di .NET Framework

  • Componenti COM

  • Altri assembly o altre librerie di classi dei progetti nella stessa soluzione

  • Servizi Web XML

Per ulteriori informazioni sui riferimenti ai servizi Web XML. vedere Web References.

Aggiunta di un riferimento in fase di progettazione

Per aggiungere uno o più riferimenti in fase di progettazione, utilizzare la finestra di dialogo Gestione riferimenti o la finestra di dialogo Aggiungi riferimento, a seconda del tipo di progetto che si sta compilando.Utilizzare la finestra di dialogo strumento di gestione dei riferimenti per tutte le applicazioni di Windows Store e la maggior parte degli altri tipi di progetti.Per ulteriori informazioni, vedere Procedura: aggiungere o rimuovere riferimenti mediante Gestione riferimenti.Altri tipi di progetto supportano la finestra di dialogo Aggiungi riferimento.Per ulteriori informazioni, vedere Procedura: aggiungere o rimuovere riferimenti utilizzando la finestra di dialogo Aggiungi riferimento.

È possibile utilizzare la finestra di dialogo Aggiungi riferimento per individuare gli assembly che non sono elencati.Non è possibile aggiungere riferimenti dalla Global Assembly Cache (GAC), che fa parte dell'ambiente di runtime.

Quando si fa riferimento a un assembly nel progetto, in Visual Studio l'assembly viene cercato nelle posizioni seguenti:

  • La directory del progetto corrente.(È possibile trovare questi assembly utilizzando la scheda Sfoglia.)

  • Altre directory di progetto nella stessa soluzione.(È possibile trovare questi assembly nella scheda Progetti.)

Per ulteriori informazioni sull'aggiunta di riferimenti in fase di progettazione, vedere Procedura: aggiungere o rimuovere riferimenti utilizzando la finestra di dialogo Aggiungi riferimento.

[!NOTA]

Tutti i progetti contengono un riferimento implicito a mscorlib.I progetti di Visual Basic contengono un riferimento implicito a Microsoft.VisualBasic.

Tutti i progetti in Visual Studio contengono un riferimento implicito a System.Core, anche se System.Core viene rimosso dall'elenco di riferimenti.

Riferimenti a componenti condivisi in fase di esecuzione

In fase di esecuzione, i componenti devono trovarsi nel percorso di output del progetto oppure nella Global Assembly Cache (GAC).Se il progetto contiene un riferimento a un oggetto che non si trova in una delle posizioni indicate sopra, è necessario copiare il riferimento nel percorso di output del progetto al momento della compilazione del progetto stesso.La proprietà CopyLocal indica se questa copia è necessaria o meno.Se il valore è True, il riferimento viene copiato nella directory del progetto durante la compilazione del progetto.Se il valore è False il riferimento non viene copiato.

Se si distribuisce un'applicazione che contiene un riferimento a un componente personalizzato registrato nella Global Assembly Cache, tale componente non verrà distribuito con l'applicazione, indipendentemente dall'impostazione di CopyLocal .Nelle precedenti versioni di Visual Studio, era possibile impostare la proprietà CopyLocal su un riferimento per garantire la distribuzione dell'assembly.Nella versione corrente, è necessario aggiungere manualmente l'assembly alla cartella \Bin.In questo modo tutto il codice personalizzato viene posto sotto esame, riducendo il rischio di pubblicazione di codice personalizzato con cui non si ha familiarità.

Per impostazione predefinita, la proprietà CopyLocal è impostata su False se l'assembly o il componente si trova nella Global Assembly Cache oppure è un componente del framework.In caso contrario, il valore è impostato su True.I riferimenti da progetto a progetto sono sempre impostati su True.

Riferimento a un progetto o un assembly destinati una versione diversa di .NET Framework

È possibile creare applicazioni che fanno riferimento a progetti o assembly destinati a una versione diversa di .NET Framework.Ad esempio, è possibile creare un'applicazione destinata a .NET Framework 4 Client Profile che fa riferimento a un assembly destinato a .NET Framework 2.0.Se si crea un progetto destinato a una versione precedente di .NET Framework, in tale progetto non è possibile impostare un riferimento a un progetto o un assembly destinato a .NET Framework 4 Client Profile o .NET Framework 4.

Per ulteriori informazioni, vedere Scelta di una versione o profilo di .NET Framework specifico.

Riferimenti da progetto a progetto e riferimenti a file

I riferimenti a file sono riferimenti diretti agli assembly. Vengono creati utilizzando la scheda Sfoglia della finestra di dialogo Aggiungi riferimento.I riferimenti da progetto a progetto sono riferimenti a progetti contenenti assembly. Vengono creati utilizzando la scheda Progetto della finestra di dialogo Aggiungi riferimento.

Il vantaggio di un riferimento da progetto a progetto consiste nella creazione di una dipendenza tra i progetti nel sistema di compilazione.Di conseguenza, il progetto dipendente viene compilato se sono state eseguite modifiche dall'ultima volta in cui è stato compilato il progetto a cui si fa riferimento.Tramite un riferimento al file non viene creata una dipendenza di compilazione e perciò è possibile compilare il progetto di riferimento senza compilare quello dipendente. In questo modo è possibile che un riferimento diventi obsoleto.(Cioè, il progetto fa riferimento a una versione del progetto compilata precedentemente.) Questo può determinare la richiesta di più versioni di una stessa DLL nella directory bin, realizzando una condizione impossibile.Quando si verifica questo conflitto, viene visualizzato un messaggio di errore quale Avviso: impossibile copiare la dipendenza "file" del progetto "progetto" nella directory di esecuzione perché sovrascriverebbe il riferimento "file"..

Evitare di aggiungere riferimenti a file agli output di altri progetti della stessa soluzione, poiché potrebbero verificarsi errori di compilazione.Utilizzare invece la scheda Progetti della finestra di dialogo Aggiungi riferimento per creare riferimenti da progetto a progetto all'interno della stessa soluzione.Tale procedura facilita lo sviluppo in team, consentendo una migliore gestione delle librerie di classi create nei progetti.Per ulteriori informazioni, vedere Risoluzione dei problemi relativi ai riferimenti interrotti e Procedura: creare e rimuovere dipendenze di progetto.

[!NOTA]

Un riferimento di file anziché un riferimento al progetto viene creato se la versione di .NET Framework di destinazione di un progetto è 4,5 e la versione di destinazione di un progetto è versioni 2, 3, 3,5, o 4,0.

Riferimenti Web

È anche possibile aggiungere riferimenti Web tramite la finestra di dialogo Aggiungi riferimento Web.Per ulteriori informazioni, vedere How to: Add and Remove Web References.

Vedere anche

Attività

Risoluzione dei problemi relativi ai riferimenti interrotti

Procedura: aggiungere o rimuovere riferimenti utilizzando la finestra di dialogo Aggiungi riferimento

Concetti

Procedura: aggiungere o rimuovere riferimenti mediante Gestione riferimenti

Altre risorse

Referencing Namespaces and Components

Managing References

Programmazione con gli assembly