Condividi tramite


Metodo References.Add

Aggiunge un nuovo riferimento al progetto.

Spazio dei nomi:  VSLangProj
Assembly:  VSLangProj (in VSLangProj.dll)

Sintassi

'Dichiarazione
Function Add ( _
    bstrPath As String _
) As Reference
Reference Add(
    string bstrPath
)
Reference^ Add(
    [InAttribute] String^ bstrPath
)
abstract Add : 
        bstrPath:string -> Reference 
function Add(
    bstrPath : String
) : Reference

Parametri

  • bstrPath
    Tipo: System.String
    Obbligatoria.Il percorso di un riferimento COM o .NET Framework.
    Questo parametro può assumere tre forme:
    Un semplice nome di oggetto .NET Framework, ad esempio "System".
    Un nome di file di .NET Framework (file tlb, dll o ocx).
    Un file di libreria COM (file tlb, dll, ocx o exe).Nel caso degli oggetti COM, il percorso deve comprendere un percorso e un nome file completi, ad esempio, "D:\SomeApplication\SomeApp.dll".Vedere le restrizioni relative all’aggiunta di riferimenti a file exe COM nella sezione "Riferimenti COM" descritta più avanti.

Valore restituito

Tipo: VSLangProj.Reference
Restituisce un oggetto Reference.

Note

Viene generato un errore qualora non siano presenti librerie dei tipi nel file indicato dal parametro bstrPath o qualora il riferimento non possa essere risolto (vedere la sezione Risoluzione dei riferimenti).

Questo metodo non genera un errore se nel progetto esiste un riferimento con le stesse proprietà Identity, Culture, MajorVersion, MinorVersion, BuildNumber e RevisionNumber del nuovo riferimento. Tale condizione mostra che il riferimento indicato dal parametro bstrPath è già stato aggiunto al progetto. Al contrario, viene restituito il ProjectItem per il riferimento corrispondente che è già contenuto nel progetto.

Se nel progetto è presente un riferimento con la stessa proprietà Identity ma con proprietà MajorVersion, MinorVersion, BuildNumber, RevisionNumber o Culture differenti, il metodo genera un errore.

Per rimuovere un riferimento, utilizzare Remove.

Riferimenti COM

Questo metodo restituisce l’oggetto Reference per la prima libreria dei tipi nel file a cui si sta facendo riferimento.

Il metodo aggiunge tutti gli oggetti presenti nel file della libreria dei tipi e qualsiasi dipendenza di tali oggetti. Pertanto una singola chiamata al metodo può far aggiungere più di un riferimento all’insieme References.

È possibile aggiungere dei file exe COM come riferimenti solo se questi contengono delle librerie dei tipi. In questo caso, vengono aggiunti riferimenti a tutte le librerie dei tipi contenute nel file exe.

Riferimenti .NET Framework

Questo metodo restituisce l’oggetto Reference per l’assembly a cui si fa riferimento.

Tali riferimenti non possiedono un file di libreria dei tipi, pertanto al progetto non vengono aggiunti assembly dipendenti come riferimenti.

Se il riferimento è un assembly che possiede anche delle librerie dei tipi incorporate, all’assembly viene aggiunto un unico riferimento.

Sono concessi dei riferimenti ai file exe .NET Framework.

Risoluzione dei riferimenti

Quando si salva il file del progetto, i percorsi per i riferimenti non vengono salvati come parte del progetto. Ciò consente al file del progetto di essere condiviso più facilmente tra computer. Ad esempio, System.dll potrebbe essere in C:\Bigfolder sul computer A e in D:\Smallfolder sul computer B. Per i riferimenti di .NET Framework, solo il nome dell'assembly di riferimento viene mantenuto. Quindi, per System.dll, "System" è permanente.

I compilatori accettano solo i riferimenti sotto forma del percorso completo seguito dal nome file, ad esempio C:\Bigfolder\system.dll. Pertanto, deve essere presente una qualche modalità coerente di individuazione degli assembly in fase di progettazione. Un assembly è risolto se è possibile individuare il percorso completo per l’assembly stesso. Il percorso risolto è il percorso completo al riferimento. Continuando con l’esempio di System, se System.dll si trova in C:\Bigfolder, quando System.dll è risolto, il suo percorso risolto è C:\Bigfolder\System.dll.

Per risolvere un riferimento, l’ambiente di sviluppo crea un nome di ricerca dal riferimento e cerca il riferimento. Il nome di ricerca viene creato in modo da comprendere l’estensione dll, poiché il nome salvato per un riferimento può includere o meno l’estensione dll. I due riferimenti ReferenceOne e ReferenceTwo.dll si chiameranno rispettivamente ReferenceOne.dll e ReferenceTwo.dll.

L’ambiente di sviluppo cerca il nome nell’ordine indicato di seguito, fermandosi non appena viene trovata una corrispondenza:

  1. Nella gerarchia del progetto.

  2. Nel percorso di ricerca dei riferimenti (impostazione a livello di progetto). Per ulteriori informazioni, vedere ReferencePath.

  3. Nell’insieme di directory usate dalla selezione componente quando enumera i riferimenti. Tale insieme di directory viene memorizzato nel Registro di sistema durante l’installazione.

Ogni riferimento è risolto quando un progetto viene caricato. La risoluzione avviene anche su un nuovo riferimento, quando il parametro bstrPath per il metodo Add non è un percorso completo.

Se un riferimento non può essere risolto, viene generato un errore. I riferimenti COM saranno sempre risolti, poiché nel parametro bstrPath è necessario il nome del percorso completo. Se il parametro bstrPath è il nome di .NET Framework, ad esempio SomeObject, o il nome file di .NET Framework senza percorso, ad esempio SomeObject.dll, è probabile che il riferimento non possa essere risolto e venga generato un errore.

Esempi

' Macro Editor
Imports VSLangProj
Sub AddExample()
   ' This example assumes that the first project in the solution is 
   ' either a Visual Basic or C# project.
   Dim aVSProject As VSProject = _
      CType(DTE.Solution.Projects.Item(1).Object, VSProject)
        
   Dim refs As References = aVSProject.References
   ' Adds a reference to a compiled .NET project.
   refs.Add("C:\path\program.dll")
   ' Adds a reference to an installed ActiveX control.
   refs.Add("C:\WINNT\system32\msmask32.ocx")
   ' Adds a reference to System.dll as an example of adding a
   ' reference using just the simple name.
   refs.Add("System")
End Sub

Sicurezza di .NET Framework

Vedere anche

Riferimenti

References Interfaccia

Spazio dei nomi VSLangProj