다음을 통해 공유


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
    형식: System.String
    필수적 요소로서,COM 또는 .NET Framework 참조의 경로입니다.
    이 매개 변수에는 다음과 같은 3가지 형태가 있습니다.
    "System"과 같은 단순한 .NET Framework 개체 이름
    .NET Framework 파일 이름(.tlb, .dll 또는 .ocx 파일)
    COM 라이브러리 파일(.tlb, .dll, .ocx 또는 .exe 파일).COM 개체의 경우 "D:\SomeApplication\SomeApp.dll"과 같이 경로에 전체 경로와 파일 이름이 포함되어야 합니다.COM.exe 파일 참조를 추가하는 방법은 아래의 "COM 참조" 단원에 나오는 제한 사항을 참조하십시오.

반환 값

형식: VSLangProj.Reference
Reference 개체를 반환합니다.

설명

bstrPath 매개 변수에 의해 지정된 파일에 형식 라이브러리가 없거나 참조를 확인할 수 없으면 오류가 발생합니다(참조 확인 단원 참조).

Identity, Culture, MajorVersion, MinorVersion, BuildNumberRevisionNumber가 새 참조와 동일한 참조가 프로젝트에 있는 경우 이 메서드는 오류를 생성하지 않습니다. 이것은 bstrPath 매개 변수에 의해 지정된 참조가 프로젝트에 이미 추가되었음을 나타냅니다. 대신 이미 프로젝트에 있는 해당 참조의 ProjectItem이 반환됩니다.

Identity는 같지만 MajorVersion, MinorVersion, BuildNumber, RevisionNumber 또는 Culture가 다른 참조가 프로젝트에 있는 경우 이 메서드는 오류를 생성합니다.

참조를 제거하려면 Remove를 사용합니다.

COM 참조

이 메서드는 참조되는 파일에 포함된 첫째 형식 라이브러리의 Reference 개체를 반환합니다.

또한 형식 라이브러리 파일에 있는 모든 개체와 이러한 개체의 종속성을 추가합니다. 따라서 이 메서드를 한 번만 호출해도 References 컬렉션에 여러 개의 참조가 추가될 수 있습니다.

COM.exe 파일에 형식 라이브러리가 포함되어 있으면 참조로 추가됩니다. 이 경우 .exe 파일에 포함된 모든 등록된 형식 라이브러리에 대한 참조가 추가됩니다.

.NET Framework 참조

이 메서드는 참조로 사용되는 어셈블리의 Reference 개체를 반환합니다.

이 참조에는 형식 라이브러리 파일이 없으므로 종속 어셈블리가 프로젝트에 참조로 추가되지 않습니다.

참조에 포함된 형식 라이브러리도 있는 어셈블리의 경우 어셈블리에 대한 참조만 추가됩니다.

.NET Framework.exe 파일에 대한 참조도 사용할 수 있습니다.

참조 확인

프로젝트 파일을 저장할 때 참조의 경로는 프로젝트의 일부로 저장되지 않습니다. 따라서 여러 컴퓨터 사이에서 프로젝트 파일을 더욱 쉽게 공유할 수 있습니다. 예를 들어, System.dll은 A 컴퓨터에서는 C:\Bigfolder에 저장될 수 있고 B 컴퓨터에서는 D:\Smallfolder에 저장될 수 있습니다. .NET Framework 참조에는 참조 어셈블리 이름만 유지됩니다. 따라서 System.dll의 경우 "System"이 저장됩니다.

컴파일러는 전체 경로와 파일 이름의 형식(예: C:\Bigfolder\system.dll)으로만 참조를 적용합니다. 그러므로 디자인 타임에 어셈블리를 일관적으로 찾는 방법이 있어야 합니다. 어셈블리의 전체 경로를 찾을 수 있는 경우에만 어셈블리가 확인됩니다. 확인된 경로는 참조의 전체 경로입니다. System 예제의 경우 System.dll이 C:\Bigfolder에 있으면 이 파일의 경로는 C:\Bigfolder\System.dll로 확인됩니다.

참조를 확인하려면 개발 환경에서는 참조로부터 검색 이름을 만든 다음 참조를 검색합니다. 참조의 저장된 이름에 .dll 확장명이 포함되거나 포함되지 않을 수 있기 때문에 .dll 확장명이 포함되도록 검색 이름을 만듭니다. 예를 들어 ReferenceOne 및 ReferenceTwo.dll이라는 두 참조의 이름은 각각 ReferenceOne.dll과 ReferenceTwo.dll로 지정됩니다.

개발 환경에서는 다음과 같은 순서로 이름을 검색하고 일치하는 이름을 찾는 즉시 검색을 중단합니다.

  1. 프로젝트 계층 구조에서 검색합니다.

  2. 프로젝트 수준 설정인 참조 검색 경로에서 검색합니다. 자세한 내용은 ReferencePath을 참조하십시오.

  3. 구성 요소 선택이 참조를 열거할 때 사용하는 디렉터리 집합에서 검색합니다. 이 디렉터리 집합은 설치하는 동안 레지스트리에 저장됩니다.

각 참조는 프로젝트가 로드될 때 확인됩니다. 또한 Add 메서드의 bstrPath 매개 변수가 전체 경로가 아닌 경우 새 참조에서 확인됩니다.

참조를 확인할 수 없으면 오류가 발생합니다. bstrPath 매개 변수에는 반드시 전체 경로 이름을 지정해야 하므로 COM 참조는 항상 확인됩니다. 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 보안

  • 직접 실행 호출자의 경우 완전히 신뢰합니다. 이 멤버는 부분적으로 신뢰할 수 있는 코드에서 사용할 수 없습니다. 자세한 내용은 부분 신뢰 코드에서 라이브러리 사용을 참조하십시오.

참고 항목

참조

References 인터페이스

VSLangProj 네임스페이스