References.Add - метод
Обновлен: Ноябрь 2007
Добавляет новую ссылку в проект.
Пространство имен: VSLangProj
Сборка: VSLangProj (в VSLangProj.dll)
Синтаксис
'Декларация
Function Add ( _
bstrPath As String _
) As Reference
'Применение
Dim instance As References
Dim bstrPath As String
Dim returnValue As Reference
returnValue = instance.Add(bstrPath)
Reference Add(
string bstrPath
)
Reference^ Add(
[InAttribute] String^ bstrPath
)
function Add(
bstrPath : String
) : Reference
Параметры
- bstrPath
Тип: System.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
Разрешения
- Полное доверие для непосредственно вызывающего метода. Этот член не может быть использован частично доверенным кодом. Дополнительные сведения см. в разделе Использование библиотек из не вполне надежного кода.