/reference (C# 編譯器選項)

/reference 選項會讓編譯器將指定之檔案中的 public 型別資訊匯入目前的專案,使您得以從指定的組件檔案中參考中繼資料 (Metadata)。

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

引數

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

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

備註

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

匯入的檔案必須包含資訊清單,輸出檔案必須使用 /target:module 以外的其中一個 /target 選項編譯。

/r/reference 的簡短形式。

使用 /addmodule 從不包含組件資訊清單的輸出檔中匯入中繼資料 (Metadata)。

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

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

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

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

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

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

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

注意事項注意事項

在 Visual Studio 中,使用 [新增參照] 對話方塊。 如需詳細資訊,請參閱HOW TO:在 Visual Studio 中新增或移除參考。 在 Visual Studio 2010 和更新版本中,為確保使用 /reference 新增參照 和使用 [新增參照] 對話方塊新增參照會有相同的行為,必須將您要新增的組件之 Embed Interop Types 屬性設為 falseTrue 是該屬性的預設值。

範例

這個範例示範如何使用外部別名功能。

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

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

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

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

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

GridV1::Grid

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

GridV2::Grid 

請參閱

其他資源

C# 編譯器選項

專案屬性 (Visual Studio)