Condividi tramite


Proprietà Reference3.CopyLocal

Ottiene o imposta un valore che indica se il riferimento è copiato nel percorso binario locale.

Spazio dei nomi:  VSLangProj80
Assembly:  VSLangProj80 (in VSLangProj80.dll)

Sintassi

'Dichiarazione
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)

Valore proprietà

Tipo: Boolean
Valore boolean che indica se il riferimento è copiato.

Note

In fase di esecuzione, un riferimento deve esistere nella Global Assembly Cache o nel percorso di output del progetto. Se questa proprietà è impostata su true, durante la fase di esecuzione il riferimento viene copiato nel percorso di output del progetto.

In fase di esecuzione, gli assembly devono essere presenti nella Global Assembly Cache (vedere Utilizzo di assembly e della Global Assembly Cache) o nel percorso di output del progetto. Se il progetto contiene un riferimento ad un oggetto che non si trova in una delle suddette posizioni, quando il progetto viene compilato, il riferimento deve essere copiato nel percorso di output del progetto stesso. La proprietà CopyLocal indica se questa copia è necessaria o meno. Se il valore è true, il riferimento viene copiato. Se il valore è false, il riferimento non viene copiato.

Common Language Runtime non tiene traccia delle modifiche al riferimento per determinare se la copia locale deve essere aggiornata. Le modifiche sono gestite dal sistema del progetto. Se l'utente non ha eseguito l'override della proprietà CopyLocal, il valore viene aggiornato automaticamente dal sistema del progetto, se necessario.

Il valore della proprietà CopyLocal assegnato dal progetto viene determinato secondo il seguente ordine:

  1. Se il riferimento è un altro progetto, in questo caso definito riferimento da progetto a progetto, il valore è true.

  2. Se il riferimento è un assembly .NET Framework di Visual Studio, il valore è false.

  3. Se l'assembly del riferimento corrisponde al nome sicuro di un assembly .NET Framework di Visual Studio, eccetto che per il numero di versione (come ad esempio gli assembly di Visual Studio 2003), il valore è false.

  4. Se l'assembly del riferimento si trova nella directory di .NET Framework, il valore è false.

  5. Se l'assembly del riferimento si trova nella Global Assembly Cache (GAC), il valore è false.

  6. In caso contrario, il valore è true.

Tenere presente che il numero 4 sopra indicato non corrisponde al numero 3 perché la cartella .NET Framework SDK non corrisponde alla directory di .NET Framework.

Esempi

Nell'esempio riportato di seguito vengono visualizzati i valori CopyLocal per tutti i riferimenti in un progetto aperto di Visual Basic o Visual C#. Per eseguire questo esempio come componente aggiuntivo, vedere Procedura: compilare ed eseguire gli esempi di codice del modello a oggetti di automazione.

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

Sicurezza di .NET Framework

Vedere anche

Riferimenti

Reference3 Interfaccia

Spazio dei nomi VSLangProj80