Reference3.CopyLocal 속성

참조를 로컬 bin 경로로 복사할지 여부를 가져오거나 설정합니다.

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

구문

‘선언
Property CopyLocal As Boolean
bool CopyLocal { get; set; }
property bool CopyLocal {
    bool get ();
    void set (bool value);
}
abstract CopyLocal : bool with get, set
function get CopyLocal () : boolean
function set CopyLocal (value : boolean)

속성 값

형식: System.Boolean
참조를 복사할지 여부를 나타내는 boolean 값입니다.

설명

런타임에는 참조가 전역 어셈블리 캐시나 프로젝트의 출력 경로에 있어야 합니다.이 속성이 true로 설정되어 있으면 참조가 런타임에 프로젝트의 출력 경로로 복사됩니다.

런타임에 어셈블리는 프로젝트의 출력 경로 또는 전역 어셈블리 캐시 중 한 위치에 있어야 합니다(어셈블리 및 전역 어셈블리 캐시 사용 참조).프로젝트에 포함된 개체에 대한 참조가 이 위치에 없으면 프로젝트가 빌드될 때 이 참조는 프로젝트의 출력 경로로 복사되어야 합니다.CopyLocal 속성은 이러한 복사 작업이 수행되어야 하는지 여부를 나타냅니다.값이 true이면 참조가 복사되며,false이면 참조가 복사되지 않습니다.

공용 언어 런타임에서는 로컬 복사본이 업데이트되어야 하는지 확인하기 위해 참조 변경을 추적하지 않습니다.이러한 변경은 프로젝트 시스템에서 추적합니다.사용자가 CopyLocal 속성을 재정의하지 않았으면 필요한 경우 프로젝트 시스템에서 이 값을 자동으로 업데이트합니다.

CopyLocal 속성의 프로젝트 할당 값은 다음과 같은 순서로 결정됩니다.

  1. 참조가 프로젝트 간 참조라고 하는 다른 프로젝트인 경우 이 값은 true입니다.

  2. 참조가 Visual Studio.NET Framework 어셈블리이면 이 값이 false입니다.

  3. 참조의 어셈블리가 Visual Studio 2003 어셈블리와 같이 버전 번호를 제외하고 Visual Studio.NET Framework 어셈블리의 강력한 이름과 일치하면 이 값이 false입니다.

  4. 참조의 어셈블리가 .NET Framework 디렉터리에 있으면 이 값이 false입니다.

  5. 참조의 어셈블리가 GAC에 있으면 이 값이 false입니다.

  6. 그렇지 않은 경우 이 값은 true입니다.

.NET Framework SDK 폴더와 .NET Framework 디렉터리는 다르기 때문에 위의 4번과 3번은 같지 않습니다.

예제

이 예제에서는 열린 Visual Basic 또는 Visual C# 프로젝트의 모든 참조에 대한 CopyLocal 값을 표시합니다.이 예제를 추가 기능으로 실행하려면 방법: 자동화 개체 모델 코드의 예제 컴파일 및 실행을 참조하십시오.

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)
     DisplayCopyLocalValues(applicationObject)
End Sub
Public Sub DisplayCopyLocalValues(ByVal dte As DTE2)
    ' The first project is a Visual Basic or C# project.
    Dim vsProject As VSProject2 = _
    CType(applicationObject.Solution.Projects.Item(1).Object, _
    VSProject2)
    Dim aRef As Reference3
    Dim refStr As String
    refStr = ""
    For Each aRef In vsProject.References
        refStr += (aRef.Name & "'s CopyLocal value is:  " & _
        aRef.CopyLocal.ToString() & vbCr& vbCr)
    Next
    MsgBox(refStr)
End Sub
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;
    DisplayCopyLocalValues(((DTE2)applicationObject));
}
public void DisplayCopyLocalValues(DTE2 dte)
{
    // The first project is a Visual Basic or C# project.
    VSProject2 vsProject = 
((VSProject2)(applicationObject.Solution.Projects.Item(1).Object));
    Reference aRef = null;
    string refStr = null;
    refStr = "";
    foreach (VSLangProj80.Reference3 temp in vsProject.References)
    {
        aRef = temp;
        refStr += (aRef.Name + "'s CopyLocal value is:   " 
+ aRef.CopyLocal.ToString() + "\n" + "\n");
    }
    MessageBox.Show(refStr);
}

.NET Framework 보안

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

참고 항목

참조

Reference3 인터페이스

CopyLocal 오버로드

VSLangProj80 네임스페이스