Freigeben über


Reference3.CopyLocal-Eigenschaft

Ruft ab oder legt fest, ob der Verweis in den lokalen Bin-Pfad kopiert wird.

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

Syntax

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

Eigenschaftswert

Typ: Boolean
Ein boolean-Wert, der angibt, ob der Verweis kopiert wird.

Hinweise

Zur Laufzeit muss ein Verweis entweder im globalen Assemblycache oder im Ausgabepfad des Projekts vorhanden sein. Wenn diese Eigenschaft auf true festgelegt wurde, wird der Verweis zur Laufzeit in den Ausgabepfad des Projekts kopiert.

Assemblys müssen sich zur Laufzeit an einem der beiden folgenden Orte befinden: im Ausgabepfad des Projekts oder im globalen Assemblycache (siehe Arbeiten mit Assemblys und dem globalen Assemblychache). Wenn das Projekt einen Verweis auf ein Objekt enthält, der sich nicht an einem der oben genannten Orte befindet, dann muss der Verweis beim Erstellen des Projekts in den Ausgabepfad des Projekts kopiert werden. Die CopyLocal-Eigenschaft gibt an, ob diese Kopie erstellt werden muss. Wenn der Wert true lautet, wird der Verweis kopiert. Wenn er false lautet, wird der Verweis nicht kopiert.

Die am Verweis vorgenommenen Änderungen werden von der Common Language Runtime nicht nachverfolgt, um festzustellen, ob die lokale Kopie aktualisiert werden muss. Änderungen werden vom Projektsystem verfolgt. Solange der Benutzer die CopyLocal-Eigenschaft nicht überschrieben hat, wird der Wert bei Bedarf automatisch vom Projektsystem aktualisiert.

Der vom Projekt zugewiesene Wert der CopyLocal-Eigenschaft wird in der folgenden Reihenfolge bestimmt:

  1. Wenn es sich bei dem Verweis um ein anderes Projekt handelt, wird dieser als Verweis von Projekt zu Projekt bezeichnet und der Wert lautet true.

  2. Wenn es sich bei dem Verweis um eine Visual Studio .NET Framework-Assembly handelt, lautet der Wert false.

  3. Wenn die Assembly des Verweises bis auf die Versionsnummer mit dem starken Namen einer Visual Studio .NET Framework-Assembly übereinstimmt (z. B. Visual Studio 2003-Assemblys), lautet der Wert false.

  4. Wenn sich die Assembly des Verweises im .NET Framework-Verzeichnis befindet, lautet der Wert false.

  5. Wenn sich die Assembly des Verweises im GAC befindet, lautet der Wert false.

  6. In allen anderen Fällen lautet der Wert true.

Beachten Sie, dass sich Punkt 4 oben von Punkt 3 unterscheidet, da der Ordner für das .NET Framework SDK nicht mit dem .NET Framework-Verzeichnis identisch ist.

Beispiele

In diesem Beispiel werden die CopyLocal-Werte für alle Verweise in einem geöffneten Visual Basic- oder Visual C#-Projekt angezeigt. Um dieses Beispiel als Add-In auszuführen, informieren Sie sich unter Gewusst wie: Kompilieren und Ausführen der Codebeispiele für das Automatisierungsobjektmodell.

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

.NET Framework-Sicherheit

Siehe auch

Referenz

Reference3 Schnittstelle

VSLangProj80-Namespace