共用方式為


Reference3.CopyLocal 屬性

取得或設定是否複製參考至本機的 bin 路徑。

命名空間:  VSLangProj80
組件:  VSLangProj80 (在 VSLangProj80.dll 中)

語法

'宣告
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)

屬性值

型別:System.Boolean
boolean 值,指出是否複製參考。

實作

Reference2.CopyLocal

備註

在執行階段時,參考必須存在於全域快取組件或專案的輸出路徑。 如果此屬性 (Property) 設定為 true,在執行階段時便會將參考複製到專案的輸出路徑。

在執行階段時,組件必須位於下列兩個位置其中之一:專案的輸出路徑或全域組件快取區 (請參閱 使用組件和全域組件快取)。 如果專案包含不在這些位置之物件的參考,那麼當專案建置 (Build) 時,必須將參考複製到專案的輸出路徑。 CopyLocal 屬性 (Property) 用來表示是否需要複製。 如果此值為 true,就會複製參考。 如果為 false,就不會複製參考。

Common Language Runtime 不會追蹤參考的變更來決定是否需要更新本機複本。 變更的追蹤是由專案系統執行。 只要使用者不覆寫 CopyLocal 屬性,必要時專案系統將自動更新此值。

CopyLocal 的專案指定值決定順序如下:

  1. 如果參考是另一個專案,稱為專案對專案參考,則值為 true。

  2. 如果參考是 Visual Studio .NET Framework 組件,則值為 false。

  3. 如果參考的組件除了版本號碼之外 (例如 Visual Studio 2003 組件),符合 Visual Studio .NET Framework 組件的強式名稱,則值為 false。

  4. 如果參考組件位於 .NET Framework 於目錄中,則值為 false。

  5. 如果參考組件位於 GAC 中,則值為 false。

  6. 否則為 true。

請注意,上述的第 4 點和第 3 點不一樣,因為 .NET Framework SDK 資料夾與 .NET Framework 目錄不同。

範例

此範例會針對開啟之 Visual Basic 或 Visual C# 專案中的所有參考,顯示 CopyLocal 值。 若要將此範例當做增益集來執行,請參閱 HOW TO:編譯和執行 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);
}

.NET Framework 安全性

請參閱

參考

Reference3 介面

CopyLocal 多載

VSLangProj80 命名空間