Compartir a través de


Reference3.CopyLocal (Propiedad)

Obtiene o establece si se copia la referencia en la ruta de acceso de la bandeja local.

Espacio de nombres:  VSLangProj80
Ensamblado:  VSLangProj80 (en VSLangProj80.dll)

Sintaxis

'Declaración
Property CopyLocal As Boolean
    Get
    Set
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 propiedad

Tipo: System.Boolean
Valor boolean que indica si se copia la referencia.

Implementaciones

Reference2.CopyLocal

Comentarios

En tiempo de ejecución debe existir una referencia en la caché global de ensamblados o en la ruta de acceso de resultados del proyecto. Si se establece esta propiedad en true, se copia la referencia a la ruta de acceso de resultados del proyecto en tiempo de ejecución.

En tiempo de ejecución, los ensamblados deben encontrarse en una de estas dos ubicaciones: la ruta de acceso de resultados del proyecto o la caché global de ensamblados (vea Trabajar con ensamblados y la Caché de ensamblados global). Si el proyecto contiene una referencia a un objeto que no se encuentra en ninguna de estas ubicaciones, cuando se genera el proyecto, se debe copiar la referencia en la ruta de acceso de resultados del proyecto. La propiedad CopyLocal indica si es necesario realizar esta copia. Si el valor es true, se copia la referencia. Si es false, no se copia la referencia.

Common Language Runtime no controla los cambios efectuados en la referencia para determinar si es necesario actualizar la copia local. En su lugar, el sistema de proyectos realiza el seguimiento de los cambios. Siempre que el usuario no haya reemplazado la propiedad CopyLocal, el sistema de proyectos actualiza automáticamente el valor si es necesario.

El valor asignado por el proyecto de la propiedad CopyLocal se determina en el orden siguiente:

  1. Si la referencia es otro proyecto, denominada referencia entre proyectos, su valor es true.

  2. Si la referencia es un ensamblado de Visual Studio .NET Framework, su valor es false.

  3. Si el ensamblado de la referencia coincide con el nombre seguro de un ensamblado de Visual Studio .NET Framework exceptuando el número de versión (como, por ejemplo, ensamblados de Visual Studio 2003), su valor es false.

  4. Si el ensamblado de la referencia está en el directorio .NET Framework, su valor es false.

  5. Si el ensamblado de la referencia está en la GAC, su valor es false.

  6. De lo contrario, el valor es true.

Debe tenerse en cuenta que el número 4 anterior es diferente del número 3 porque la carpeta .NET Framework SDK no es igual que el directorio .NET Framework.

Ejemplos

En este ejemplo se muestran los valores de CopyLocal para todas las referencias en un proyecto de Visual Basic o Visual C# abierto. Para ejecutar este ejemplo como complemento, vea Cómo: Compilar y ejecutar los ejemplos de código del modelo de objetos de automatización.

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

Seguridad de .NET Framework

Vea también

Referencia

Reference3 Interfaz

CopyLocal (Sobrecarga)

VSLangProj80 (Espacio de nombres)