Partilhar via


Propriedade Reference3.CopyLocal

Obtém ou define se a referência será copiada no caminho local bin.

Namespace:  VSLangProj80
Assembly:  VSLangProj80 (em VSLangProj80.dll)

Sintaxe

'Declaração
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)

Valor de propriedade

Tipo: Boolean
Um valor de boolean que indica se a referência será copiada.

Comentários

Em tempo de execução, uma referência deve existir em cachê de assembly global ou no caminho de saída do projeto. Se essa propriedade for definida como true, a referência será copiada no caminho de saída do projeto em tempo de execução.

Em tempo de execução, os assemblies devem estar em um de dois locais: o caminho de saída do projeto ou o cachê de assembly global (consulte Trabalhando com assemblies e o cache de assemblies global). Se o projeto contém uma referência a um objeto que não está em um desses locais, quando o projeto é criado, a referência deve ser copiada no caminho de saída do projeto. A propriedade de CopyLocal indica se essa cópia precisa ser feita. Se o valor for true, a referência será copiada. Se false, a referência não é copiado.

Common Language Runtime não controla as alterações feitas na referência para determinar se a cópia local precisa ser atualizada. As alterações são rastreadas pelo sistema de projeto. à medida que o usuário não substituiu a propriedade de CopyLocal , o valor será atualizado automaticamente pelo sistema do projeto se necessário.

O valor atribuído da propriedade de CopyLocal é determinado na seguinte ordem:

  1. Se a referência é outro projeto, chamado uma referência de projeto para projeto, o valor é true.

  2. Se a referência é um assembly de Visual Studio.NET Framework , o valor é false.

  3. Se o assembly de referência corresponde ao nome forte do assembly de Visual Studio.NET Framework com exceção do número de versão (como Visual Studio 2003 assemblies, por exemplo), o valor é false.

  4. Se o assembly de referência está no diretório de .NET Framework , o valor é false.

  5. Se o assembly de referência é no GAC, o valor é false.

  6. Caso contrário, o valor é true.

Observe que o número 4 anterior não é igual ao número 3 porque a pasta de .NET Framework SDK não é a mesma coisa que o diretório de .NET Framework .

Exemplos

Este exemplo exibe os valores de CopyLocal para todas as referências em Visual Basic ou em um projeto aberto de Visual C# . Para executar este exemplo como um suplemento, consulte Como compilar e executar os exemplos de código do modelo de objeto Automation.

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);
}

Segurança do .NET Framework

Consulte também

Referência

Reference3 Interface

Namespace VSLangProj80