/reference (匯入中繼資料) (C# 編譯器選項)

更新:2007 年 11 月

/reference 選項可讓編譯器將指定檔案中的 public (C# 參考) 型別資訊匯入目前的專案,您便能夠從指定的組件檔案中參考中繼資料 (Metadata)。

/reference:[alias=]filename
/reference:filename

引數

  • filename
    含有組件資訊清單 (Assembly Manifest) 的檔案名稱。若要匯入一個以上的檔案,請分別在每個檔案中加入 /reference 選項。

  • alias
    有效的 C# 識別項代表根命名空間,其中會包含組件中的所有命名空間。

備註

若要從一個以上的檔案匯入,請在每個檔案都加入 /reference 選項。

匯入的檔案必須包含資訊清單,輸出檔案必須使用其中一個 /target (指定輸出檔案格式) (C# 編譯器選項) 選項編譯,除了 /target:module (建立加入至組件的模組) (C# 編譯器選項) 以外。

/r/reference 的簡短形式。

使用 /addmodule (匯入中繼資料) (C# 編譯器選項) 從不包含組件資訊清單的輸出檔中匯入中繼資料 (Metadata)。

如果您參考的組件 (A 組件) 本身也要參考其他組件 (B 組件) 的話,在下列情況下您必須參考 B 組件:

  • 您從 A 組件使用的型別繼承自某個型別,或是從 B 組件實作介面

  • 您從 B 組件叫用具有傳回型別 (Return Type) 或參數型別的欄位、屬性 (Property)、事件或方法

請使用 /lib (指定組件參考位置) (C# 編譯器選項) 指定一個或多個組件參考所在的目錄。/lib 主題也提供了編譯器會在哪些目錄搜尋組件的相關討論。

如果要讓編譯器辨認組件 (而非模組) 中的某個型別,則必須強制它解析這個型別,您可以藉由定義該型別的執行個體來進行這種強制解析。為編譯器解決組件中的型別名稱還有其他方法可行,例如,如果您是從組件中的型別繼承,編譯器隨後即可辨認型別名稱。

有時候,在單一組件內部參考同樣元件的兩種版本是必要的。若要這麼做,請為每個檔案使用 /reference 參數上的別名子選項,以分辨兩個檔案。這個別名會用來當做元件名稱的限定詞,並會解析為其中一個檔案中的元件。

根據預設,會使用參考 .NET Framework 常用組件的 csc.rsp 回應檔 (Response File)。如果您不想讓編譯器使用 csc.rsp,請使用 /noconfig (忽略 csc.rsp) (C# 編譯器選項)

如需詳細資訊,請參閱加入參考對話方塊

範例

這個範例將說明如何使用外部別名 (C# 參考) 功能。

您編譯原始程式檔,並從先前已編譯的 grid.dll 和 grid20.dll 匯入中繼資料。兩個 DLL 包含相同元件的不同版本,而您使用兩個 /reference 搭配別名選項,以編譯原始程式檔。選項會如下所示:

/reference:GridV1=grid.dll and /reference:GridV2=grid20.dll

這會建立外部別名 "GridV1" 和 "GridV2",而您可以在程式中以 extern 陳述式使用它們:

extern GridV1;
extern GridV2;
// Using statements go here.

完成後,您可以在控制名稱加上 GridV1 字首,並參考 grid.dll 中的方格控制項,方法如下:

GridV1::Grid

此外,您可以在控制名稱加上 GridV2 字首,並參考 Grid20.dll 中的方格控制項,方法如下:

GridV2::Grid 

請參閱

其他資源

C# 編譯器選項

專案屬性 (Visual Studio)