Reference3 Interface
Extends the Reference2 interface of the VSLangProj2 namespace.
Assembly: VSLangProj80 (in VSLangProj80.dll)
| Name | Description | |
|---|---|---|
![]() | Aliases | Gets or sets the aliased names for the specified reference. This property applies to Visual C# only. |
![]() | AutoReferenced | Gets whether the reference is automatically referenced by the compiler. |
![]() | BuildNumber | Gets the build number of the reference. |
![]() | Collection | Gets a collection of References. |
![]() | ContainingProject | Gets the Project containing the reference. |
![]() | CopyLocal | Gets or sets whether the reference is copied to the local bin path. |
![]() | Culture | Gets the culture string of a reference. |
![]() | Description | Gets a text description of the reference. |
![]() | DTE | Gets the top-level extensibility object. |
![]() | Extender[String] | This API supports the product infrastructure and is not intended to be used directly from your code. Microsoft Internal Use Only. |
![]() | ExtenderCATID | This API supports the product infrastructure and is not intended to be used directly from your code. Microsoft Internal Use Only. |
![]() | ExtenderNames | This API supports the product infrastructure and is not intended to be used directly from your code. Microsoft Internal Use Only. |
![]() | Identity | Gets the unique identifier of the reference. |
![]() | Isolated | Gets or sets whether the COM reference is isolated, that is, not registered with Windows. |
![]() | MajorVersion | Gets the major version number of the reference. |
![]() | MinorVersion | Gets the minor version number of the reference. |
![]() | Name | Gets the name of the object. |
![]() | Path | Gets the path to the reference file. |
![]() | PublicKeyToken | Gets the public key token from a strongly signed reference. |
![]() | RefType | Gets the type of reference: assembly, COM, or native. |
![]() | Resolved | Gets whether the current reference was resolved. |
![]() | RevisionNumber | Gets the revision number of the reference. |
![]() | RuntimeVersion | Gets the version of the runtime against which the reference was built. This is applicable only for .NET references. |
![]() | SourceProject | Gets a Project object if the reference is a project. Otherwise, it returns Nothing (a null object). |
![]() | SpecificVersion | Gets or sets whether only a specific version of the reference is used. |
![]() | StrongName | Gets whether the reference is signed with a public/private key pair. |
![]() | SubType | Sets or Gets the assembly subtype. |
![]() | Type | Obsolete. Included for backward compatibility only. Use RefType instead. |
![]() | Version | Gets the version of the specified reference. |
| Name | Description | |
|---|---|---|
![]() | Remove() | Removes the reference from the References object that contains it. |
The following example adds two references to an open Visual Basic or Visual C# project. It then calls a function, GetRefTypeName, to display the reference type and calls a function, ReportReferences, to display additional reference properties. To run this example as an add-in, see How to: Compile and Run the Automation Object Model Code Examples.
The default paths for the added references are : <installation root>\Program Files\Microsoft.NET\Primary Interop Assemblies for adodb.dll, and <installation root>\Program Files\Common Files\SpeechEngines\Microsoft for spcommon.dll. Replace the <file path> in the example with these or other appropriate file paths.
using System.Windows.Forms; using VSLangProj; using VSLangProj2; using VSLangProj80; public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom) { applicationObject = (DTE2)application; addInInstance = (AddIn)addInInst; AddNewReference(((DTE2)applicationObject)); } public void AddNewReference(DTE2 dte) { Project aProject = null; VSProject2 aVSProject = null; aProject = applicationObject.Solution.Projects.Item(1); aVSProject = ((VSProject2)(applicationObject.Solution.Projects.Item(1).Object)); // Add an Assembly reference and display its type and a report. Reference3 newRef = null; // Replace <file path> with an actual file path. newRef = ((Reference3)(aVSProject.References.Add(@" <file path>\adodb.dll"))); MessageBox.Show("The " + newRef.Name + " added, is of type:" + "\n" + GetRefTypeName(newRef)); MessageBox.Show("A report on " + newRef.Name + ":" + "\n" + ReportReferences(newRef)); // Add a COM reference and display its type and a report. // Replace <file path> with an actual file path. newRef = ((Reference3)(aVSProject.References.Add(@" <file path>\spcommon.dll"))); MessageBox.Show("The " + newRef.Name + " added, is of type:" + "\n" + GetRefTypeName(newRef)); MessageBox.Show("A report on " + newRef.Name + ":" + "\n" + ReportReferences(newRef)); } private string GetRefTypeName(Reference3 refIdent) { string type = null; switch (refIdent.Type) { case prjReferenceType.prjReferenceTypeActiveX: type = "COM"; break; case prjReferenceType.prjReferenceTypeAssembly: type = "Assembly"; break; } return type; } public string ReportReferences(Reference3 aRef) { string report = ""; string type = null; // Each entry in the ArrayList contains a label and a value. System.Collections.ArrayList ht = new System.Collections.ArrayList(); VSLangProj.Reference temp = aRef; ht.Add(new string[] { "Name", temp.Name }); ht.Add(new string[] { "Description", temp.Description }); ht.Add(new string[] { "Version", string.Format("{0}.{1}.{2}.{3}" , temp.MajorVersion, temp.MinorVersion, temp.BuildNumber, temp.RevisionNumber) }); ht.Add(new string[] { "Location", temp.ContainingProject.FullName }); switch (temp.Type) { case prjReferenceType.prjReferenceTypeActiveX: type = "COM"; break; case prjReferenceType.prjReferenceTypeAssembly: type = "Assembly"; break; } ht.Add(new string[] { "Type", type }); ht.Add(new string[] { "Culture", temp.Culture }); string[] datas = null; foreach (string[] temp1 in ht) { datas = temp1; report += datas[0] + "\t" + datas[1] + "\n"; } return report; }

