Reference Interface
Represents one reference in the project. Including a reference in a project allows you to use any of the public members contained in the reference. Projects may include references to other .NET projects, .NET assemblies, and COM objects.
Namespace: VSLangProj
Assembly: VSLangProj (in VSLangProj.dll)
Syntax
'Declaration
<GuidAttribute("35D6FB50-35B6-4C81-B91C-3930B0D95386")> _
Public Interface Reference
[GuidAttribute("35D6FB50-35B6-4C81-B91C-3930B0D95386")]
public interface Reference
[GuidAttribute(L"35D6FB50-35B6-4C81-B91C-3930B0D95386")]
public interface class Reference
[<GuidAttribute("35D6FB50-35B6-4C81-B91C-3930B0D95386")>]
type Reference = interface end
public interface Reference
The Reference type exposes the following members.
Properties
Name | Description | |
---|---|---|
BuildNumber | Gets the build number of the reference. Read-only. | |
Collection | Gets the collection containing the object supporting this property or contained within this code construct. | |
ContainingProject | Gets the project that the selected item is a part of. Read-only. | |
CopyLocal | Determines whether the reference is copied to the local bin path. | |
Culture | Gets the culture string of a reference. Read-only. | |
Description | Gets a text description of the reference. Read-only. | |
DTE | Gets the top-level extensibility object. | |
Extender | Gets the requested Extender object if it is available for this object. | |
ExtenderCATID | Gets the Extender category ID (CATID) for the object. | |
ExtenderNames | Gets a list of available Extenders for the object. | |
Identity | Gets the unique identifier of the reference. Read-only. | |
MajorVersion | Gets the major version number of the reference. Read-only. | |
MinorVersion | Gets the minor version number of the reference. Read-only. | |
Name | Gets the name of the object. Read-only. | |
Path | Gets the path to the reference file. Read-only. | |
PublicKeyToken | Gets the public key token for the referenced assembly. | |
RevisionNumber | Gets the revision number of the reference. Read-only. | |
SourceProject | Gets a Project object if the reference is a project. Otherwise, it returns Nothing (a nulla null reference (Nothing in Visual Basic) reference). Read-only. | |
StrongName | Gets whether the reference is signed with a public/private key pair. Read-only. | |
Type | Gets a prjReferenceType value indicating whether the reference is an assembly or a COM component. Read-only. | |
Version | Gets the version of the selected reference. |
Top
Methods
Name | Description | |
---|---|---|
Remove | Gets the reference from the References object that contains it. |
Top
Remarks
Reference objects are contained in the VSProject object's References collection. There are two types of Reference objects: assemblies (including Visual Studio projects) and COM objects. When a reference is another project, this is called a project-to-project reference and is still considered an assembly reference.
Examples
The following example creates a new project from a template, adds two references, and displays their types.
'Macro Editor
Imports VSLangProj
Sub NewProject()
Dim newName As String = InputBox("New project name:")
' Create a new project in the solution based on an existing
' project.
Dim newProject As Project = DTE.Solution.AddFromTemplate( _
"C:\TemplatePath\Template.vbproj", _
"C:\ProjectPath\" & newName, newName)
' Add a COM reference and display its type.
Dim vsProject As VSProject = CType(newProject.Object, VSProject)
Dim newRef As Reference
newRef = vsProject.References.Add("C:\WINNT\System32\msmask32.ocx")
MsgBox(GetRefTypeName(newRef))
' Add an Assembly reference and display its type, "Assembly".
newRef = vsProject.References.Add("C:\SomeProject\bin\SomeProject.dll")
MsgBox(GetRefTypeName(newRef))
End Sub
Private Function GetRefTypeName(ByVal ref As Reference) _
As String
Dim type As String
Select Case ref.Type
Case prjReferenceType.prjReferenceTypeActiveX
type = "COM"
Case prjReferenceType.prjReferenceTypeAssembly
type = "Assembly"
End Select
Return type
End Function
The following example creates a short report of a reference's properties.
' Macro Editor
' Create a small report about a reference.
Imports VSLangProj
Function ReportReferences(ByVal aRef As Reference) As String
Dim report As String = ""
Dim type As String
' Each entry in the ArrayList will contain a label and a value.
Dim ht As System.Collections.ArrayList = _
New System.Collections.ArrayList()
With aRef
ht.Add(New String() {"Name", .Name})
ht.Add(New String() {"Description", .Description})
ht.Add(New String() {"Version", String.Format("{0}.{1}.{2}.{3}", _
.MajorVersion, .MinorVersion, .BuildNumber, .RevisionNumber)})
ht.Add(New String() {"Location", .ContainingProject.FullName})
Select Case .Type
Case prjReferenceType.prjReferenceTypeActiveX
type = "COM"
Case prjReferenceType.prjReferenceTypeAssembly
type = "Assembly"
End Select
ht.Add(New String() {"Type", type})
ht.Add(New String() {"Culture", .Culture})
End With
Dim datas() As String
For Each datas In ht
report &= datas(0) & ControlChars.Tab & datas(1) & ControlChars.CrLf
Next
Return report
End Function