다음을 통해 공유


Reference3 인터페이스

VSLangProj2 네임스페이스의 Reference2 인터페이스를 확장합니다.

네임스페이스:  VSLangProj80
어셈블리:  VSLangProj80(VSLangProj80.dll)

구문

‘선언
<GuidAttribute("5021602E-2025-4299-88D2-0A92E8B41ADF")> _
Public Interface Reference3 _
    Inherits Reference2
[GuidAttribute("5021602E-2025-4299-88D2-0A92E8B41ADF")]
public interface Reference3 : Reference2
[GuidAttribute(L"5021602E-2025-4299-88D2-0A92E8B41ADF")]
public interface class Reference3 : Reference2
[<GuidAttribute("5021602E-2025-4299-88D2-0A92E8B41ADF")>]
type Reference3 =  
    interface 
        interface Reference2 
    end
public interface Reference3 extends Reference2

Reference3 형식에서는 다음과 같은 멤버를 노출합니다.

속성

  이름 설명
Public 속성 Aliases 지정한 참조의 별칭 이름을 가져오거나 설정합니다.이 속성은 Visual C#에만 적용됩니다.
Public 속성 AutoReferenced 컴파일러에서 참조를 자동으로 참조하는지 여부를 가져옵니다.
Public 속성 BuildNumber 참조의 빌드 번호를 가져옵니다.
Public 속성 Collection References의 컬렉션을 가져옵니다.
Public 속성 ContainingProject 참조를 포함하는 Project를 가져옵니다.
Public 속성 CopyLocal 참조를 로컬 bin 경로로 복사할지 여부를 가져오거나 설정합니다.
Public 속성 Culture 참조의 문화권 문자열을 가져옵니다.
Public 속성 Description 참조의 텍스트 설명을 가져옵니다.
Public 속성 DTE 최상위 확장성 개체를 가져옵니다.
Public 속성 Extender 인프라입니다. Microsoft 내부용입니다.
Public 속성 ExtenderCATID 인프라입니다. Microsoft 내부용입니다.
Public 속성 ExtenderNames 인프라입니다. Microsoft 내부용입니다.
Public 속성 Identity 참조의 고유 식별자를 가져옵니다.
Public 속성 Isolated COM 참조가 격리되어 있는지, 즉 Windows에 등록되어 있지 않은지 여부를 가져오거나 설정합니다.
Public 속성 MajorVersion 참조의 주 버전 번호를 가져옵니다.
Public 속성 MinorVersion 참조의 부 버전 번호를 가져옵니다.
Public 속성 Name 개체의 이름을 가져옵니다.
Public 속성 Path 참조 파일의 경로를 가져옵니다.
Public 속성 PublicKeyToken 강력하게 서명된 참조에서 공개 키 토큰을 가져옵니다.
Public 속성 RefType 참조 형식(어셈블리, COM 또는 네이티브)을 가져옵니다.
Public 속성 Resolved 현재 참조가 확인되었는지 여부를 가져옵니다.
Public 속성 RevisionNumber 참조의 수정 번호를 가져옵니다.
Public 속성 RuntimeVersion 참조를 빌드할 때 대상으로 사용된 런타임의 버전을 가져옵니다..NET 참조에만 해당됩니다.
Public 속성 SourceProject 참조가 프로젝트이면 Project 개체를 가져오고그렇지 않으면 Nothing(null 개체)을 반환합니다.
Public 속성 SpecificVersion 특정 참조 버전만 사용할지 여부를 가져오거나 설정합니다.
Public 속성 StrongName 참조를 공개/개인 키 쌍으로 서명할지 여부를 가져옵니다.
Public 속성 SubType 어셈블리의 하위 형식을 설정하거나 가져옵니다.
Public 속성 Type 사용되지 않습니다.이전 버전과의 호환을 위해서만 포함되었습니다.대신 RefType를 사용하십시오.
Public 속성 Version 지정한 참조의 버전을 가져옵니다.

위쪽

메서드

  이름 설명
Public 메서드 Remove 참조가 포함된 References 개체에서 참조를 제거합니다.

위쪽

설명

Reference3에서는 다음과 같은 새 매개 변수를 정의합니다.

Aliases

AutoReferenced

Isolated

RefType

SpecificVersion

예제

다음 예제에서는 열린 Visual Basic 또는 Visual C# 프로젝트에 두 개의 참조를 추가합니다. 그런 다음 GetRefTypeName 함수를 호출하여 참조 형식을 표시하고 ReportReferences 함수를 호출하여 추가 참조 속성을 표시합니다. 이 예제를 추가 기능으로 실행하려면 방법: 자동화 개체 모델 코드의 예제 컴파일 및 실행을 참조하십시오.

추가되는 참조의 기본 경로는 adodb.dll의 경우 <설치 루트>\Program Files\Microsoft.NET\Primary Interop Assemblies이고 spcommon.dll의 경우 <설치 루트>\Program Files\Common Files\SpeechEngines\Microsoft입니다. 예제의 <file path>를 이 경로 또는 적절한 다른 파일 경로로 바꿉니다.

Imports VSLangProj
Imports VSLangProj2
Imports VSLangProj80
Public Sub OnConnection(ByVal application As Object,_
 ByVal connectMode As ext_ConnectMode, ByVal addInInst As Object, _
 ByRef custom As Array) Implements IDTExtensibility2.OnConnection
    applicationObject = CType(application, DTE2)
    addInInstance = CType(addInInst, AddIn)
    AddNewReference(applicationObject)
End Sub
Sub AddNewReference(ByVal dte As DTE2)
    Dim aProject As Project
    Dim aVSProject As VSProject2
    aProject = applicationObject.Solution.Projects.Item(1)
    aVSProject =_
 CType(applicationObject.Solution.Projects.Item(1).Object, VSProject2)
    ' Add an Assembly reference and display its type and additional
    ' information.
    Dim newRef As Reference3
    ' Replace <file path> with an actual path.
    newRef = aVSProject.References.Add("<file path>\adodb.dll")
    MsgBox("The " & newRef.Name() & " added, is of type:" & vbCr _
    & GetRefTypeName(newRef))
    MsgBox("A report on " & newRef.Name() & ":" & vbCr & _
    ReportReferences(newRef))
    ' Add a COM reference and display its type and a report.
    ' Replace <file path> with an actual path.
    newRef = aVSProject.References.Add("<file path>\spcommon.dll")
    MsgBox("The " & newRef.Name() & " added, is of type:" & vbCr _
    & GetRefTypeName(newRef))
    MsgBox("A report on " & newRef.Name() & ":" & vbCr & _
    ReportReferences(newRef))
End Sub
Private Function GetRefTypeName(ByVal ref As Reference3) _
    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
Function ReportReferences(ByVal aRef As Reference3) As String
    Dim report As String = ""
    Dim type As String
    ' Each entry in the ArrayList contains 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
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;
}

참고 항목

참조

VSLangProj80 네임스페이스

Reference