References.Add - метод
Добавляет новую ссылку в проект.
Пространство имен: VSLangProj
Сборка: VSLangProj (в VSLangProj.dll)
Синтаксис
'Декларация
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
Параметры
bstrPath
Тип: StringОбязательный. Путь для ссылки COM или .NET Framework.
Этот параметр может принимать три формы:
Простое имя объекта .NET Framework, например "System".
Имя файла .NET Framework (TLB-, DLL- или OCX-файл).
Файл библиотеки COM (TLB-, DLL-, OCX- или EXE-файл). Для COM-объектов этот путь должен включать полный путь и имя файла, например "D:\SomeApplication\SomeApp.dll". Ограничения при добавлении ссылок на EXE-файлы COM см. ниже в разделе "Ссылки COM".
Возвращаемое значение
Тип: VSLangProj.Reference
Возвращает объект Reference.
Заметки
Ошибка создается в случае, если в файле, указанном параметром bstrPath, отсутствуют библиотеки типов, или если не удается разрешить ссылку (см. раздел "Разрешение ссылок").
Если ссылка в этом проекте имеет те же свойства Identity, Culture, MajorVersion, MinorVersion, BuildNumber и RevisionNumber, что и новая ссылка, то данный метод не создает ошибку. Это условие показывает, что ссылка, указанная в параметре bstrPath, уже добавлена в данный проект. Вместо этого возвращается объект ProjectItem для соответствующей ссылки, уже имеющейся в проекте.
Если в проекте существует ссылка с тем же свойством Identity, но с отличными свойствами MajorVersion, MinorVersion, BuildNumber, RevisionNumber или Culture, то метод создает ошибку.
Чтобы удалить ссылку, используется метод Remove.
Ссылки COM
Этот метод возвращает объект Reference для первой библиотеки типов в файле, на который выполняется ссылка.
Данный метод добавляет все объекты из файла библиотеки типов, а также любые зависимости этих объектов. Таким образом, при одном вызове этого метода в коллекцию References может быть добавлено несколько ссылок.
Если EXE-файлы COM содержат библиотеки типов, они могут быть добавлены как ссылки. В этом случае добавляются ссылки на все зарегистрированные библиотеки типов, содержащиеся в данном EXE-файле.
Справочники по .NET Framework
Данный метод возвращает объект Reference для сборки, являющейся ссылкой.
Эти ссылки не имеют файла библиотеки типов, поэтому зависимые сборки не добавляются в этот проект в качестве ссылок.
Если ссылка — сборка, имеющая встроенные библиотеки типов, добавляется только ссылка на эту сборку.
Разрешены ссылки на EXE-файлы .NET Framework.
Разрешение ссылок
При сохранении файла проекта пути ссылок не сохраняются как часть этого проекта. Это упрощает совместное использование файла проекта несколькими компьютерами. Например, System.dll может храниться в C:\Bigfolder на компьютере A и в D:\Smallfolder на компьютере B. В случае ссылок .NET Framework сохраняется только имя сборки, на которую указывает ссылка. Поэтому для файла System.dll сохраняется значение System.
Компиляторы принимают ссылки только в следующей форме: полный путь плюс имя файла, например C:\Bigfolder\system.dll. Поэтому должен существовать какой-либо постоянный способ расположения сборок во время разработки. Сборка разрешена, если можно найти полный путь к ней. Разрешенный путь — это полный путь к данной ссылке. Если в примере System файл System.dll находится в папке C:\Bigfolder, файл System.dll разрешен, его разрешенный путь — C:\Bigfolder\System.dll.
Для разрешения ссылки среда разработки создает имя поиска для этой ссылки и выполняет ее поиск. Имя поиска создается с расширением DLL, поскольку сохраненное имя ссылки может и не включать это расширение. Две ссылки, ReferenceOne и ReferenceTwo.dll, будут иметь имена ReferenceOne.dll и ReferenceTwo.dll соответственно.
В среде разработки поиск имен выполняется в следующем порядке и заканчивается при обнаружении совпадения:
В иерархии проекта.
В пути поиска ссылок, являющемся параметром на уровне проекта. Для получения дополнительной информации см. ReferencePath.
В наборе каталогов, используемом выбором компонентов при перечислении ссылок. Этот набор каталогов сохраняется в реестре при установке.
Каждая ссылка разрешается при загрузке проекта. Разрешение новой ссылки также происходит, если параметр bstrPath метода Add не является полным путем.
Если ссылка не может быть разрешена, создается ошибка. Ссылки COM всегда будут разрешены, поскольку в параметре bstrPath требуется задать полное имя пути. Если параметр bstrPath — это имя .NET Framework (например SomeObject) или имя файла .NET Framework без пути (например SomeObject.dll), эта ссылка, возможно, не будет разрешена, и будет создана ошибка.
Примеры
' 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
- Полное доверие для непосредственно вызывающего метода. Этот член не может быть использован частично доверенным кодом. Для получения дополнительной информации см. Использование библиотек из не вполне надежного кода.