Propriedade Reference3.CopyLocal

Obtém ou define se a referência é copiada para o caminho de bin local.

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: System.Boolean
A boolean valor que indica se a referência é copiada.

Comentários

Em tempo de execução, uma referência deve existir no cache global de assemblies ou o caminho de saída do projeto.Se essa propriedade estiver definida como true, a referência é copiada para o caminho de saída do projeto em tempo de execução.

Em tempo de execução, os módulos (assemblies) deve estar em um dos dois locais: o caminho de saída do projeto ou o cache global de assemblies (consulte Trabalhando com Assemblies e o Cache Global de assemblies).Se o projeto contém uma referência a um objeto que não está em um desses locais, em seguida, quando o projeto é construído, a referência deve ser copiada para o caminho de saída do projeto.O CopyLocal propriedade indica se esta cópia precisa ser feita.Se o valor for true, a referência é copiada.Se false, a referência não é copiada.

O common language runtime não controla alterações para a referência para determinar se a cópia local precisa ser atualizado.As alterações são controladas pelo sistema do projeto.Desde que o usuário não substituiu o CopyLocal propriedade, o valor é atualizada automaticamente pelo sistema do projeto se necessário.

O valor atribuído pelo projeto da CopyLocal propriedade é determinada na seguinte ordem:

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

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

  3. Se o assembly da referência coincide com um Visual Studio.NET Framework o nome forte, exceto para o número da versão do assembly (como Visual Studio 2003 assemblies, por exemplo), e em seguida, o valor é false. 

  4. Se o assembly da referência está na .NET Framework diretório, e em seguida, o valor é false.

  5. Se o assembly da referência está no GAC, então o valor é false.

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

Observe que o número 4 acima não é o mesmo que o número 3 porque a .NET Framework a pasta do SDK não é a mesma coisa que o .NET Framework directory.

Exemplos

Este exemplo exibe o CopyLocal valores para todas as referências em uma abertura Visual Basic ou Visual C# project.Para executar este exemplo como um add-in, consulte Como: compilar e executar os exemplos de código de modelo de objeto de automação.

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

Sobrecargas CopyLocal

Namespace VSLangProj80