Procedura: aggiungere o rimuovere riferimenti mediante Gestione riferimenti
È possibile utilizzare la finestra di dialogo Gestione riferimenti per aggiungere e gestire riferimenti a componenti sviluppati personalmente, da Microsoft o da un'altra società.Se si sviluppa un'applicazione per Windows Store, il progetto fa riferimento automaticamente a tutto in Windows 8 SDK e .NET Framework.Se si sviluppa un altro tipo di progetto, è necessario aggiungere manualmente questi riferimenti al progetto.
Attenzione |
---|
È possibile aggiungere riferimenti in altri generi di progetti tramite la finestra di dialogo Aggiungi riferimento.Per ulteriori informazioni, vedere Procedura: aggiungere o rimuovere riferimenti utilizzando la finestra di dialogo Aggiungi riferimento. |
Aggiunta e rimozione di un riferimento
Per aggiungere un riferimento in un progetto C# o Visual Basic
Sulla barra dei menu scegliere File, Apri.
Passare alla soluzione o al progetto.
In Esplora soluzioni aprire il menu di scelta rapida per il nodo del progetto, quindi scegliere Aggiungi riferimento.
Specificare i riferimenti da aggiungere, quindi scegliere OK.
Per rimuovere un riferimento, aprire il menu di scelta rapida e scegliere Rimuovi.
Per aggiungere un riferimento in un progetto C++
Sulla barra dei menu scegliere File, Apri.
Passare alla soluzione o al progetto.
In Esplora soluzioni aprire il menu di scelta rapida per il nodo del progetto, quindi scegliere Riferimenti.
Nella finestra di dialogo Pagine delle proprietà scegliere il pulsante Aggiungi nuovo riferimento.
Nella finestra di dialogo Aggiungi riferimento specificare i riferimenti da aggiungere, quindi scegliere OK.
Per rimuovere un riferimento, aprire il menu di scelta rapida e scegliere Rimuovi.
Verrà aperto Gestione riferimenti nel quale sarà visualizzato l'elenco dei riferimenti disponibili in base al gruppo.Il tipo di progetto determina quale dei seguenti gruppi vengono visualizzati:
Assembly, con i sottogruppi Estensioni e Framework.
Soluzione, con il sottogruppo Progetti.
Windows, con il Sottogruppo di base ed Estensioni.È possibile esplorare i riferimenti in Windows SDK o negli SDK di estensione utilizzando il Visualizzatore oggetti.
Visualizzazione, con il sottogruppo Recenti.
Scheda Assembly
Nella scheda Assembly sono elencati tutti gli assembly .NET Framework disponibili per fare riferimento.Nella scheda Assembly non vengono elencati gli assembly dalla Global Assembly Cache (GAC) in quanto questi assembly fanno parte dell'ambiente di runtime.Se si distribuisce o si copia un'applicazione che contiene un riferimento a un assembly registrato nella Global Assembly Cache, tale assembly non verrà distribuito o copiato con l'applicazione, indipendentemente dall'impostazione dell'opzione Copia localmente.Per ulteriori informazioni, vedere Gestione di riferimenti a progetti.
Quando si aggiunge manualmente un riferimento a uno qualsiasi degli spazi dei nomi (EnvDTE, EnvDTE80, EnvDTE90, EnvDTE90a, or EnvDTE100), impostare la proprietà Incorpora tipi di interoperabilità del riferimento su False nella finestra Proprietà.L'impostazione di questa proprietà su True può causare problemi di compilazione a causa di determinate proprietà che non possono essere incorporate.
Tutti i progetti desktop contengono un riferimento implicito a mscorlib.I progetti di Visual Basic contengono un riferimento implicito a Microsoft.VisualBasic.In Visual Studio 2012, tutti i progetti contengono un riferimento implicito a System.Core, anche se viene rimosso dall'elenco di riferimenti.
Se un tipo di progetto non supporta gli assembly, la scheda non verrà visualizzata nella finestra di dialogo Gestione riferimenti.
La scheda Assembly è costituita da due sottoschede:
In Framework sono elencati tutti gli assembly che costituiscono il framework di destinazione.
Gli assembly annunciati sono nel Framework completo e vengono enumerati nell'elenco Framework quando il progetto è destinato a un profilo del framework di destinazione.Gli assembly annunciati appaiono in grigio per differenziarli dagli assembly presenti nel profilo del framework di destinazione del progetto.Ad esempio, se un progetto è destinato a .NET Framework 4 Client, nell'elenco Framework vengono mostrati gli assembly annunciati da .NET Framework 4.Quando un utente aggiunge un assembly annunciato, l'utente riceve una notifica indicante che, dopo la chiusura della finestra di dialogo Gestione riferimenti, il progetto verrà reindirizzato a .NET Framework 4 e l'assembly annunciato verrà aggiunto.
I progetti per applicazioni di Windows Store contengono riferimenti a tutti gli assembly di .NET per app di Windows Store di destinazione per impostazione predefinita all'atto della creazione del progetto.Nei progetti gestiti, un nodo di sola lettura nella cartella Riferimenti in Esplora soluzioni indica il riferimento all'intero framework.Pertanto, nella scheda Framework non saranno enumerati gli assembly dal framework e verrà invece visualizzato il messaggio seguente: "Si è già fatto riferimento a tutti gli assembly del framework.Utilizzare il Visualizzatore oggetti per esplorare i riferimenti nel framework". Per i progetti desktop, nella scheda Framework vengono enumerati gli assembly dal framework di destinazione e l'utente dovrà aggiungere i riferimenti necessari all'applicazione.
In Estensioni sono elencati tutti gli assembly che i fornitori esterni di componenti e di controlli hanno sviluppato per estendere il framework di destinazione.A seconda dello scopo dell'applicazione utente, potrebbero essere necessari questi assembly.
Estensioni viene popolata enumerando gli assembly che sono registrati nei seguenti percorsi:
32-bit machine: HKEY_CURRENT_USER\SOFTWARE\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies] HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies] 64-bit machine: HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies] HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies] And older versions of the [Target Framework Identifier]
Ad esempio, se un progetto è destinato a .NET Framework 4 in un computer a 32 bit, in Estensioni saranno enumerati gli assembly che sono registrati in \Microsoft\.NETFramework\v4.0\AssemblyFoldersEx\, \Microsoft\.NETFramework\v3.5\AssemblyFoldersEx\, \Microsoft\.NETFramework\v3.0\AssemblyFoldersEx\ e \Microsoft\.NETFramework\v2.0\AssemblyFoldersEx\.
Scheda COM
Nella scheda COM sono elencati tutti i componenti COM a cui è possibile fare riferimento.Se si desidera aggiungere un riferimento a una DLL COM registrata che contiene un manifesto interno, annullare prima di tutto la registrazione della DLL.In caso contrario, Visual Studio aggiungerà il riferimento all'assembly come controllo ActiveX e non come DLL nativa.
Se un tipo di progetto non supporta il modello COM, la scheda non verrà visualizzata nella finestra di dialogo Gestione riferimenti.
Scheda Soluzione
Nella scheda Soluzione sono elencati tutti i progetti compatibili all'interno della soluzione corrente, nella sottoscheda Progetti.
Un progetto può fare riferimento a un altro progetto destinato a una versione differente di .NET Framework.Ad esempio, è possibile creare un progetto destinato a .NET Framework 4 ma che fa riferimento a un assembly compilato per .NET Framework 2.Tuttavia, il progetto di .NET Framework 2 non può fare riferimento a un progetto per .NET Framework 4.Per ulteriori informazioni, vedere Scelta di una versione o profilo di .NET Framework specifico.
Un progetto destinato a .NET Framework 4 è incompatibile con un progetto destinato a .NET Framework 4 Client Profile.
In Visual Studio 2012, viene creato un riferimento al file anziché un riferimento al progetto se un progetto è destinato a .NET Framework 4 e un altro progetto è destinato a una versione precedente.
Un progetto destinato a .NET per app di Windows Store non può aggiungere un riferimento di progetto a un progetto destinato a .NET Framework e viceversa.
Scheda Windows.
Nella scheda Windows sono elencati tutti gli SDK specifici alle piattaforme nelle quali vengono eseguiti i sistemi operativi Windows.
È possibile generare un file WinMD in Visual Studio in due modi:
Progetti gestiti per applicazioni Windows Store: i progetti gestiti per applicazioni Windows Store possono generare file binari WinMD impostando Proprietà progetto | Tipo di output = File WinMD.Il nome del file WinMD deve essere lo spazio dei nomi superset di tutti gli spazi dei nomi in esso contenuti.Ad esempio, se un progetto è costituito dagli spazi dei nomi A.B e A.B.C, i nomi possibili per il file WinMD generato saranno A.winmd e A.B.winmd.Se un utente immette un valore Proprietà progetti | Nome assembly o Proprietà progetti | Spazio dei nomi che è disgiunto dal set di spazi dei nomi nel progetto o non è presente alcuno spazio dei nomi superset all'interno di un progetto, verrà generato un avviso di compilazione: "A.winmd" non è un nome di file .winmd valido per l'assembly.Tutti i tipi presenti in un file di metadati di Windows devono esistere in uno spazio dei nomi secondario del nome file.I tipi che non esistono in uno spazio dei nomi secondario del nome file non potranno essere individuati in fase di esecuzione.In questo assembly, lo spazio dei nomi comune più piccolo è "CSWSClassLibrary1".Un progetto desktop Visual Basic o Visual C# può utilizzare solo file WinMD che sono generati utilizzando i Windows 8 SDK, noti come WinMD del produttore, e non può generare WinMD.
Progetti nativi per applicazioni Windows Store: un file WinMD nativo è costituito solo da metadati.L'implementazione esiste in un file DLL distinto.È possibile produrre i binari nativi scegliendo il modello di progetto Componenti di Windows Runtime nella finestra di dialogo Nuovo progetto o accanto a partire da un progetto vuoto e modificando le proprietà del progetto per generare un file WinMD.Se il progetto è costituito da spazi dei nomi disgiunti, un errore di compilazione indicherà all'utente di combinare gli spazi dei nomi o di eseguire lo strumento MSMerge.
La scheda Windows è costituita da due sottogruppi.
Sottogruppo di base
Nel Sottogruppo di base sono elencati tutti i file WinMD (per gli elementi Windows Runtime) nell'SDK per la versione di Windows di destinazione.
I progetti per applicazioni di Windows Store contengono riferimenti a tutti i file WinMD in Windows 8 SDK per impostazione predefinita all'atto della creazione del progetto.Nei progetti gestiti, un nodo di sola lettura nella cartella Riferimenti in Esplora soluzioni indica il riferimento all'intero Windows 8 SDK.Di conseguenza, nel Sottogruppo di base in Gestione riferimenti non verrà enumerato alcuno degli assembly da Windows 8 SDK e verrà visualizzato invece un messaggio: "Si è già fatto riferimento al Windows SDK.Utilizzare il Visualizzatore oggetti per esplorare i riferimenti nel Windows SDK".
Nei progetti desktop, il Sottogruppo di base non viene visualizzato per impostazione predefinita.È possibile aggiungere Windows Runtime aprendo il menu di scelta rapida del nodo del progetto, scegliere Scarica progetto, aggiungendo il seguente frammento e riaprendo il progetto (sul nodo del progetto scegliere Ricarica progetto).Quando si richiama la finestra di dialogo Gestione riferimenti, viene visualizzato il Sottogruppo di base.
<PropertyGroup>
<TargetPlatformVersion>8.0</TargetPlatformVersion>
</PropertyGroup>
Assicurarsi di selezionare la casella di controllo Windows relativa al sottogruppo.A questo punto dovrebbe essere possibile utilizzare gli elementi Windows Runtime.Tuttavia, è possibile che si desideri aggiungere System.Runtime, in cui Windows Runtime definisce alcune classi e interfacce standard, come IEnumerable, che sono utilizzate in tutte le librerie di Windows Runtime.Per informazioni su come aggiungere System.Runtime, vedere App desktop gestite e Windows Runtime.
Sottogruppo Estensioni
In Estensioni sono elencati gli SDK che estendono la piattaforma Windows di destinazione.Questa scheda viene visualizzata solo per i progetti di applicazioni per Windows Store.Nei progetti desktop questa scheda non sarà visualizzata in quanto tali progetti possono utilizzare solo i file .winmd del produttore.
Un SDK è una raccolta di file che in Visual Studio vengono trattati come un singolo componente.Nella scheda Estensioni gli SDK che si applicano al progetto da cui è stata richiamata la finestra di dialogo Gestione riferimenti sono elencati come singole voci.Una volta aggiunto a un progetto, tutto il contenuto dell'SDK viene utilizzato da Visual Studio in modo tale che l'utente non deve assumere nuove azioni per sfruttare il contenuto dell'SDK in IntelliSense, nella casella degli strumenti, nelle finestre di progettazione, nel Visualizzatore oggetti, nella compilazione, nella distribuzione, nel debug e nella creazione del pacchetto.Per informazioni su come visualizzare l'SDK nella scheda Estensioni, vedere Creating a Software Development Kit.
[!NOTA]
Se un progetto fa riferimento a un SDK che dipende da un altro SDK, in Visual Studio non verrà utilizzato il secondo SDK a meno che l'utente non aggiunga manualmente un riferimento al secondo SDK.Quando un utente sceglie un SDK della scheda Estensioni, la finestra di dialogo Gestione riferimenti aiuta l'utente a identificare le dipendenze dall'SDK elencando non solo il nome e la versione dell'SDK ma anche il nome di tutte le dipendenze dell'SDK nel riquadro dei dettagli.Se un utente non annota le dipendenze e aggiunge solo l'SDK, tramite MSBuild verrà chiesto di aggiungere le dipendenze.
Se un tipo di progetto non supporta le Estensioni, la scheda non verrà visualizzata nella finestra di dialogo Gestione riferimenti.
Pulsante Sfoglia
È possibile utilizzare il pulsante Sfoglia per passare a un componente nel file system.
Un progetto può fare riferimento a un componente destinato a una versione differente di .NET Framework.Ad esempio, è possibile creare un'applicazione destinata a .NET Framework 4 Client Profile, che fa riferimento a un componente destinato a .NET Framework 2.Per ulteriori informazioni, vedere Scelta di una versione o profilo di .NET Framework specifico.
Evitare di aggiungere riferimenti di file agli output di un altro progetto della stessa soluzione, poiché questa tattica potrebbe causare errori di compilazione.Utilizzare invece la scheda Soluzione della finestra di dialogo Gestione riferimenti per creare riferimenti da progetto a progetto.Questa strategia 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.
Non è possibile individuare un SDK e aggiungerlo al progetto.È possibile solo individuare un file, ad esempio un assembly o un file .winmd, e aggiungerlo al progetto.
Nella creazione di un riferimento di file a un WinMD, il layout previsto è quello in cui tutti i file FileName.winmd, FileName.dll e FileName.pri sono posizionati l'uno accanto all'altro.Se si fa riferimento a un WinMD nei seguenti scenari, un set incompleto di file verrà copiato nella directory di output del progetto e, di conseguenza, si verificheranno errori di runtime e di compilazione.
Componente nativo: un progetto nativo creerà un WinMD per ogni set di spazi dei nomi disgiunto e una DLL costituita dall'implementazione.I file WinMD avranno nomi diversi.Durante la creazione del riferimento a questo file di componente nativo, MSBuild non sarà in grado di riconoscere che i WinMD diversamente denominati sono in realtà un unico componente.Di conseguenza, solo i file FileName.dll e FileName.winmd con lo stesso nome saranno copiati e si verificheranno degli errori di runtime.Per risolvere questo problema, creare un SDK di estensione.Per ulteriori informazioni, vedere Creating a Software Development Kit.
Utilizzo di controlli: un controllo XAML consiste come minimo nei file FileName.winmd, FileName.dll, FileName.pri, XamlName.xaml e in un file ImageName.jpg.Quando il progetto viene compilato, i file di risorse associati al riferimento di file non vengano copiati nella directory di output del progetto. Verranno copiati solo i file FileName.winmd, FileNameDLL e FileName.pri.Verrà registrato un errore di compilazione per informare l'utente dell'assenza delle risorse XamlName.xaml e ImageName.jpg.Per ottenere i risultati desiderati, l'utente dovrà copiare manualmente questi file di risorse nella directory di output del progetto per compilazione e debug/runtime.Per risolvere questo problema, creare un SDK di estensione seguendo i passaggi in Creating a Software Development Kit o modificare il file di progetto per aggiungere la seguente proprietà:
<PropertyGroup> <GenerateLibraryOutput>True</GenerateLibraryOutput> </PropertyGroup>
[!NOTA]
Se si aggiunge la proprietà, la compilazione potrebbe essere eseguita più lentamente.
Recente
Le schede Assembly, COM, Windows e Sfoglia supportano tutte una scheda Recenti nella quale viene enumerato l'elenco di componenti aggiunti ai progetti di recente.
Cerca
La barra di ricerca nella finestra di dialogo Gestione riferimenti ha effetto sulla scheda che possiede lo stato attivo.Ad esempio, se un utente digita "sistema" sulla barra di ricerca mentre è attiva la scheda Soluzione, non verrà restituito alcun risultato a meno che la soluzione non sia costituita da un nome di progetto contenente il termine "sistema".