Partager via


Reference3.CopyLocal, propriété

Obtient ou définit l'information indiquant si la référence est copiée ou non dans le chemin bin local.

Espace de noms :  VSLangProj80
Assembly :  VSLangProj80 (dans VSLangProj80.dll)

Syntaxe

'Déclaration
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)

Valeur de propriété

Type : System.Boolean
Une valeur boolean qui indique si la référence est copiée.

Notes

Au moment de l'exécution, il doit exister une référence soit dans le Global Assembly Cache, soit dans le chemin de sortie du projet.Si cette propriété a la valeur true, la référence est copiée dans le chemin de sortie du projet au moment de l'exécution.

Au moment de l'exécution, les assemblys doivent se trouver à l'un ou l'autre des emplacements suivants : chemin de sortie du projet ou Global Assembly Cache (consultez Utilisation d'assemblys et du Global Assembly Cache).Si le projet contient une référence à un objet qui ne se trouve pas à l'un de ces emplacements, la référence doit être copiée dans le chemin de sortie du projet lorsque celui-ci est généré.La propriété CopyLocal indique s'il est nécessaire d'effectuer la copie.Si sa valeur est true, la référence est copiée.Si sa valeur est false, la référence n'est pas copiée.

Le common language runtime n'assure pas le suivi des modifications apportées à la référence pour déterminer si la copie locale doit être mise à jour.Ces modifications sont suivies par le système de projet.Tant que l'utilisateur n'a pas substitué la propriété CopyLocal, la valeur est automatiquement mise à jour au besoin par le système de projet.

La valeur assignée au projet de la propriété CopyLocal est déterminée selon l'ordre suivant :

  1. Si la référence est un autre projet, ce qu'on appelle une référence entre projets, alors la valeur est true.

  2. Si la référence est un assembly Visual Studio de .NET Framework, la valeur est false.

  3. Si l'assembly de la référence correspond au nom fort d'un assembly Visual Studio de .NET Framework à l'exception du numéro de version (tel que les assemblys Visual Studio 2003, par exemple), la valeur est false.

  4. Si l'assembly de la référence se trouve dans le répertoire .NET Framework, la valeur est false.

  5. Si l'assembly de la référence se trouve dans le GAC, la valeur est false.

  6. Sinon, la valeur est true.

Notez la différence, ci-dessus, entre les chiffres 4 et 3 ; en effet, le dossier du Kit de développement logiciel .NET Framework n'est pas identique au répertoire .NET Framework.

Exemples

Cet exemple affiche les valeurs CopyLocal pour toutes les références d'un projet Visual Basic ou Visual C# ouvert.Pour exécuter cet exemple comme un complément, consultez Comment : compiler et exécuter les exemples de code du modèle objet 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);
}

Sécurité .NET Framework

Voir aussi

Référence

Reference3 Interface

CopyLocal, surcharge

VSLangProj80, espace de noms