Condividi tramite


Gestire i riferimenti in un progetto

Prima di scrivere codice in un componente esterno o in un servizio connesso, il progetto deve prima contenere un riferimento. Un riferimento è essenzialmente una voce in un file di progetto contenente le informazioni necessarie a Visual Studio per individuare il componente o il servizio.

La modalità di aggiunta di un riferimento dipende dal tipo di progetto per il codice su cui si sta lavorando:

  • Se si vede un nodo dipendenze in Esplora soluzioni, è possibile usare il menu contestuale con il tasto destro del mouse per selezionare Aggiungi riferimento al progetto.

    Screenshot dell'opzione Aggiungi riferimento al progetto dal menu di scelta rapida.

    È anche possibile fare clic con il pulsante destro del mouse sul nodo del progetto , e selezionare Aggiungi un riferimento di progetto>.

  • Se viene visualizzato un nodo Riferimenti in Esplora soluzioni, è possibile utilizzare il menu contestuale del clic destro per selezionare Aggiungi riferimento.

    Screenshot dell'opzione Aggiungi riferimento dal menu di scelta rapida.

    In alternativa, fare clic con il pulsante destro del mouse sul nodo del progetto e selezionare Aggiungi un riferimento>.

    Per altre informazioni, vedere Procedura: Aggiungere o rimuovere riferimenti.

È possibile aggiungere un riferimento ai tipi di componenti e servizi seguenti:

  • Librerie di classi o insiemi .NET

  • App UWP

  • Componenti COM

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

  • Progetti condivisi

  • Servizi Web XML

Riferimenti alle app UWP

La piattaforma UWP (Universal Windows Platform) offre una piattaforma di app comune per ogni dispositivo che esegue Windows. Per informazioni su come creare un'app UWP, vedere Esercitazione: Creare la prima applicazione UWP in Visual Studio con XAML e C#.

Riferimenti al progetto

I progetti UWP (Universal Windows Platform) possono creare riferimenti ad altri progetti UWP nella soluzione o a progetti o file binari di Windows 8.1, purché questi progetti non usino API deprecate in Windows 10 e versioni successive. Per altre informazioni, vedere Passare da Windows Runtime 8 a UWP.

Se si sceglie di reindirizzare i progetti di Windows 8.1 a Windows 10 e versioni successive, vedere Porta, eseguire la migrazione e aggiornare i progetti di Visual Studio.

Consiglio

Per informazioni su come creare e compilare una nuova app UWP per Windows 10 e Windows 11, vedi Scegliere una versione UWP.

Riferimenti all'SDK di estensione

Le app UWP (Universal Windows Platform) visual Basic, C#, C++ e JavaScript possono fare riferimento agli SDK di estensione destinati a Windows 8.1, purché questi SDK di estensione non usino API deprecate in Windows 10 e versioni successive. Controllare il sito del fornitore di Extension SDK per scoprire se è possibile farvi riferimento dalle app UWP.

Se si determina che l'SDK di estensione a cui fa riferimento l'app non è supportato, è necessario eseguire la procedura seguente:

  1. Esaminare il nome del progetto che causa l'errore. La piattaforma di destinazione del progetto viene annotata tra parentesi accanto al nome del progetto. Ad esempio, MyProjectName (Windows 8.1) significa che il progetto MyProjectName è destinato alla versione della piattaforma Windows 8.1.

  2. Passare al sito del fornitore che possiede l'SDK dell'estensione non supportato e installare la versione dell'SDK dell'estensione con dipendenze compatibili con la versione della piattaforma a cui è destinato il progetto.

    Nota

    Un modo per scoprire se un SDK di estensione ha dipendenze da altri SDK di estensione è cercare in Gestione riferimenti. Riavviare Visual Studio, creare un nuovo progetto di app UWP C# e quindi fare clic con il pulsante destro del mouse sul progetto e selezionare Aggiungi riferimento. Passare alla scheda di Windows, quindi alla sotto-scheda Estensioni e selezionare l'SDK di estensione. Guardare il pannello a destra nel Gestione riferimenti. Se presenta dipendenze, verranno elencate in tale posizione.

    Importante

    Se il progetto è destinato specificamente a Windows 10 e l'SDK dell'estensione installato nel passaggio precedente ha una dipendenza dal pacchetto di runtime di Microsoft Visual C++, la versione del pacchetto di runtime di Microsoft Visual C++ compatibile con Windows 10 è v14.0 e viene installata con Visual Studio.

  3. Se l'SDK dell'estensione installato nel passaggio precedente presenta dipendenze da altri SDK di estensione, passare ai siti dei fornitori che possiedono le dipendenze e quindi installare le versioni di queste dipendenze compatibili con la versione della piattaforma di destinazione del progetto.

  4. Riavviare Visual Studio e aprire l'app.

  5. Fare clic con il pulsante destro del mouse sul nodo Riferimenti o Dipendenze nel progetto che ha causato l'errore e quindi selezionare Aggiungi Riferimento.

  6. Selezionare la scheda di Windows e quindi la sottoscheda estensioni, deselezionare le caselle di controllo per gli SDK di estensione precedenti e quindi selezionare le caselle di controllo per i nuovi SDK di estensione. Selezionare OK.

Aggiungere un riferimento in fase di progettazione

Quando si crea un riferimento a un assembly nel progetto, Visual Studio cerca l'assembly nei percorsi seguenti:

  • Directory del progetto corrente. È possibile trovare questi assembly usando la scheda Sfoglia.

  • Altre directory di progetto nella stessa soluzione. Questi assembly sono disponibili nella scheda "Progetti ".

Nota

  • Tutti i progetti contengono un riferimento implicito a mscorlib.
  • Tutti i progetti contengono un riferimento implicito a System.Core, anche se System.Core viene rimosso dall'elenco di riferimenti.
  • I progetti Visual Basic contengono un riferimento implicito a Microsoft.VisualBasic.

Riferimenti ai componenti condivisi in fase di esecuzione

In fase di esecuzione, i componenti devono trovarsi nel percorso di output del progetto o nella Global Assembly Cache (GAC). Se il progetto contiene un riferimento a un oggetto che non si trova in una di queste posizioni, è necessario copiare il riferimento al percorso di output del progetto quando si compila il progetto. La proprietà CopyLocal indica se è necessario eseguire la copia. Se il valore è True, il riferimento viene copiato nella directory del progetto quando si compila il 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 GAC, il componente non verrà distribuito con l'applicazione, indipendentemente dall'impostazione CopyLocal. Nelle versioni precedenti di Visual Studio è possibile impostare la proprietà CopyLocal su un riferimento per assicurarsi che l'assembly sia stato distribuito. È ora necessario aggiungere manualmente l'assembly alla cartella \Bin. Questa azione mette tutto il codice personalizzato sotto controllo, riducendo così il rischio di pubblicare 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 o è un componente del framework. In caso contrario, il valore è impostato su True. I riferimenti da progetto a progetto sono sempre impostati su True.

Fare riferimento a un progetto o a un assembly destinato a una versione diversa di .NET

È possibile creare applicazioni che fanno riferimento a progetti o assembly destinati a una versione diversa di .NET. Ad esempio, è possibile creare un'applicazione destinata a .NET Framework 4.6, che fa riferimento a un assembly destinato a .NET Framework 4.5. Se si crea un progetto destinato a una versione precedente di .NET, non è possibile impostare un riferimento in tale progetto su un progetto o un assembly destinato a una versione più recente.

Per ulteriori informazioni, vedere la panoramica del targeting del framework .

Riferimenti da progetto a progetto

I riferimenti da progetto a progetto sono riferimenti a progetti che contengono assembly; è possibile aggiungere riferimenti al progetto usando la scheda Progetti della finestra di dialogo Gestione riferimenti. Visual Studio può trovare un assembly quando viene assegnato un percorso al progetto.

Quando si dispone di un progetto che produce un assembly, è necessario fare riferimento al progetto e non usare un riferimento al file. Il vantaggio di un riferimento da progetto a progetto è che crea una dipendenza tra i progetti nel sistema di compilazione. Il progetto dipendente viene compilato se è stato modificato dopo l'ultima compilazione del progetto di riferimento. Un riferimento al file non crea una dipendenza di compilazione, quindi è possibile compilare il progetto di riferimento senza compilare il progetto dipendente e il riferimento può diventare obsoleto. Ovvero, il progetto può fare riferimento a una versione compilata in precedenza del progetto. Ciò può comportare la necessità di più versioni di una singola DLL nella directory bin, che non è possibile. Quando si verifica questo conflitto, viene visualizzato un messaggio, ad esempio "Avviso: la dipendenza 'file' nel progetto 'project' non può essere copiata nella directory di esecuzione perché sovrascrive il riferimento 'file'". Per altre informazioni, vedere Risolvere i problemi relativi ai riferimenti interrotti e Procedura: Creare e rimuovere dipendenze di progetto.

Nota

Viene creato un riferimento al file anziché un riferimento da progetto a progetto se la versione di destinazione di .NET Framework di un progetto è versione 4.5 e la versione di destinazione dell'altro progetto è 2, 3, 3.5 o 4.0.

Riferimenti al progetto condiviso

A differenza della maggior parte degli altri tipi di progetto, un progetto condiviso non ha alcun output binario. Il codice viene invece compilato in ogni progetto che vi fa riferimento. I progetti condivisi consentono di scrivere codice comune a cui fanno riferimento molti progetti di applicazione diversi. Il codice viene compilato come parte di ogni progetto di riferimento e può includere direttive del compilatore per incorporare funzionalità specifiche della piattaforma nella codebase condivisa. Aggiungere un riferimento a un progetto condiviso nella scheda Progetti condivisi della finestra di dialogo Gestione riferimenti.

Riferimenti ai file

I riferimenti ai file sono riferimenti diretti agli assembly all'esterno del contesto di un progetto di Visual Studio. È possibile crearli usando la scheda Sfoglia della finestra di dialogo Gestione riferimenti. Usare un riferimento a un file quando si ha solo un assembly o un componente e non il progetto che lo crea come output.