References.Add-Methode

Fügt einen neuen Verweis zum Projekt hinzu.

Namespace:  VSLangProj
Assembly:  VSLangProj (in VSLangProj.dll)

Syntax

'Declaration
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

Parameter

  • bstrPath
    Typ: System.String
    Erforderlich.Der Pfad eines COM- oder .NET Framework-Verweises.
    Dieser Parameter kann drei Formen annehmen:
    Einen einfachen .NET Framework-Objektnamen, z. B. "System".
    Ein .NET Framework-Dateiname (TLB-, DLL- oder OCX-Datei).
    Eine COM-Bibliothekdatei (TBL-, DLL-, OCX- oder EXE-Datei).Bei COM-Objekten muss der Pfad den vollständigen Pfad und den Dateinamen umfassen, z. B. "D:\SomeApplication\SomeApp.dll".Informationen über Einschränkungen beim Hinzufügen von Verweisen für EXE-Dateien bei COM finden Sie im Abschnitt COM-Verweise weiter unten.

Rückgabewert

Typ: VSLangProj.Reference
Gibt ein Reference-Objekt zurück.

Hinweise

Ein Fehler wird generiert, wenn keine Typbibliotheken in der Datei vorhanden sind, die vom bstrPath-Parameter angegeben wird, oder wenn der Verweis nicht aufgelöst werden kann (siehe Abschnitt Auflösen von Verweisen).

Diese Methode generiert keinen Fehler, wenn das Projekt einen Verweis mit denselben Eigenschaften Identity, Culture, MajorVersion, MinorVersion, BuildNumber und RevisionNumber wie der neue Verweis enthält. Diese Bedingung würde bedeuten, dass der Verweis, der vom bstrPath-Parameter angegeben wird, dem Projekt bereits hinzugefügt wurde. Stattdessen wird ProjectItem für den übereinstimmenden Verweis zurückgegeben, der bereits im Projekt vorhanden ist.

Wenn ein Verweis mit derselben Identity-Eigenschaft, aber unterschiedlichen Eigenschaften MajorVersion, MinorVersion, BuildNumber, RevisionNumber oder Culture im Projekt gefunden wird, generiert die Methode einen Fehler.

Um einen Verweis zu entfernen, verwenden Sie Remove.

COM-Verweise

Diese Methode gibt das Reference-Objekt für die erste Typbibliothek in der Datei zurück, auf die verwiesen wird.

Diese Methode fügt alle Objekte hinzu, die in der Typbibliothekdatei und allen abhängigen Elementen dieser Objekte gefunden werden. Daher kann ein einzelner Aufruf an diese Methode dazu führen, dass der References-Auflistung mehrere Verweise hinzugefügt werden.

EXE-Dateien von COM können als Verweis hinzugefügt werden, falls sie Typbibliotheken enthalten. In einem solchen Fall werden Verweise auf alle registrierten Typbibliotheken hinzugefügt, die in der EXE-Datei enthalten sind.

.NET Framework-Verweise

Diese Methode gibt das Reference-Objekt für die Assembly zurück, die als Verweis dient.

Diese Verweise haben keine Typbibliothekdatei, sodass keine abhängigen Assemblys als Verweis zum Projekt hinzugefügt werden.

Wenn es sich bei dem Verweis um eine Assembly handelt, die ebenfalls über eingebettete Typbibliotheken verfügt, wird nur ein Verweis zur Assembly hinzugefügt.

Verweise auf EXE-Dateien von .NET Framework sind zulässig.

Auflösen von Verweisen

Beim Speichern der Projektdatei werden die Pfade für Verweise nicht als Teil des Projekts gespeichert. Dadurch kann die Projektdatei leichter von mehreren Computern gemeinsam genutzt werden. Beispiel: Die Datei System.dll ist im Verzeichnis C:\Bigfolder auf Computer A und im Verzeichnis D:\Smallfolder auf Computer B gespeichert. Für .NET Framework-Verweise wird nur der Verweisassemblyname beibehalten. Das bedeutet, dass für System.dll System beibehalten wird.

Compiler akzeptieren nur Verweise in Form von vollständiger Pfad plus Dateiname, z. B. C:\Bigfolder\system.dll. Deshalb muss es eine konsistente Möglichkeit zum Suchen von Assemblys zur Entwurfszeit geben. Eine Assembly wird aufgelöst, wenn der vollständige Pfad zur Assembly gefunden wird. Der aufgelöste Pfad ist der vollständige Pfad zum Verweis. Wenn System.dll im Verzeichnis C:\Bigfolder gefunden und System.dll anschließend aufgelöst wird, entspricht der aufgelöste Pfad im Beispiel oben also C:\Bigfolder\System.dll.

Zum Auflösen eines Verweises erstellt die Entwicklungsumgebung aus dem Verweis einen Suchnamen und sucht nach dem Verweis. Der Suchname wird so erstellt, dass er die Erweiterung .dll umfasst, weil der gespeicherte Name für einen Verweis die Erweiterung .dll zwar enthalten kann, aber nicht muss. Die beiden Verweise ReferenceOne und ReferenceTwo.dll erhalten die Namen ReferenceOne.dll und ReferenceTwo.dll.

Die Entwicklungsumgebung sucht in der folgenden Reihenfolge nach dem Namen und beendet die Suche, sobald eine Übereinstimmung gefunden wurde:

  1. In der Projekthierarchie.

  2. Im Suchpfad der Verweise. Dabei handelt es sich um eine Einstellung auf Projektebene. Weitere Informationen finden Sie unter ReferencePath.

  3. In der Verzeichnisgruppe, die die Komponentenauswahl bei der Enumeration von Verweisen verwendet. Diese Gruppe von Verzeichnissen wird während der Installation in der Registrierung gespeichert.

Alle Verweise werden aufgelöst, wenn ein Projekt geladen wird. Ein neuer Verweis wird auch aufgelöst, wenn der bstrPath-Parameter für die Add-Methode etwas anderes als ein vollständiger Pfad ist.

Wenn ein Verweis nicht aufgelöst werden kann, wird ein Fehler generiert. COM-Verweise werden immer aufgelöst, weil der Name des vollständigen Pfads im bstrPath-Parameter erforderlich ist. Wenn der bstrPath-Parameter der .NET Framework-Name (z. B. SomeObject) oder der .NET Framework-Dateiname ohne Pfad (z. B. SomeObject.dll) ist, kann es sein, dass der Verweis nicht aufgelöst werden kann, und es wird ein Fehler generiert.

Beispiele

' 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

.NET Framework-Sicherheit

Siehe auch

Referenz

References Schnittstelle

VSLangProj-Namespace