/reference (Metadaten importieren) (C#-Compileroptionen)

Aktualisiert: November 2007

Mit der /reference-Option importiert der Compiler Informationen zum public (C#-Referenz)-Typ in der angegebenen Datei in das aktuelle Projekt. Dadurch können Sie auf Metadaten aus den angegebenen Assemblydateien verweisen.

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

Argumente

  • filename
    Der Name einer Datei, die ein Assemblymanifest enthält. Um mehr als eine Datei zu importieren, schließen Sie für jede Datei eine separate /reference-Option ein.

  • alias
    Ein gültiger C#-Bezeichner, der einen Stammnamespace mit allen Namespaces in der Assembly darstellt.

Hinweise

Um mehr als eine Datei zu importieren, schließen Sie für jede Datei eine /reference-Option ein.

Die zu importierenden Dateien müssen ein Manifest enthalten. Die Ausgabedatei muss zuvor mit einer der /target (Ausgabedateiformat festlegen) (C#-Compileroptionen)-Optionen kompiliert werden. Die /target:module (Modul zum Hinzufügen zu Assembly erstellen) (C#-Compileroptionen)-Option darf dabei jedoch nicht verwendet werden.

/r ist die Kurzform von /reference.

Verwenden Sie /addmodule (Metadaten importieren) (C#-Compileroptionen), um Metadaten aus einer Ausgabedatei zu importieren, die kein Assemblymanifest enthält.

Wenn auf eine Assembly verwiesen wird (Assembly A), die auf eine weitere Assembly verweist (Assembly B), müssen Sie in folgenden Fällen auf Assembly B verweisen:

  • Ein für Assembly A verwendeter Typ erbt von einem Typ oder implementiert eine Schnittstelle aus Assembly B.

  • Ein Feld, eine Eigenschaft, ein Ereignis oder eine Methode mit einem Rückgabe- oder Parametertyp aus Assembly B wird aufgerufen.

Geben Sie mithilfe von /lib (Speicherorte für Assemblyverweise angeben) (C#-Compileroptionen) das Verzeichnis an, in dem sich ein oder mehrere Assemblyverweise befinden. Im Thema zu /lib werden auch die Verzeichnisse erläutert, in denen der Compiler nach Assemblys sucht.

Damit der Compiler einen Typ in einer Assembly (und nicht in einem Modul) erkennen kann, muss die Auflösung des Typs erzwungen werden. Dies kann durch die Definition einer Instanz des betreffenden Typs erfolgen. Der Compiler verfügt über andere Möglichkeiten, um die Typnamen in einer Assembly aufzulösen. Beispielsweise wird der Typname beim Erben von einem Typ in einer Assembly vom Compiler erkannt.

Es ist in einzelnen Fällen erforderlich, aus einer Assembly heraus auf zwei unterschiedliche Versionen derselben Komponente zu verweisen. Sie können dazu für jede Datei die Alias-Option für den /reference-Schalter verwenden, um zwischen den beiden Dateien zu unterscheiden. Dieser Alias wird als Qualifizierer für den Komponentennamen verwendet und in die Komponente in einer der Dateien aufgelöst.

Die CSC-Antwortdatei (csc.rsp), die auf häufig verwendete .NET Framework-Assemblys verweist, wird dabei standardmäßig verwendet. Verwenden Sie /noconfig ("csc.rsp" ignorieren) (C#-Compileroptionen), wenn der Compiler die Datei csc.rsp nicht verwenden soll.

Weitere Informationen finden Sie unter Dialogfeld "Verweis hinzufügen".

Beispiel

In diesem Beispiel wird die Verwendung des extern-Alias (C#-Referenz)-Features veranschaulicht.

Kompilieren Sie die Quelldatei, und importieren Sie Metadaten aus grid.dll und grid20.dll,die bereits vorher kompiliert wurden. Die beiden DLLs enthalten separate Versionen derselben Komponente, und Sie verwenden zwei Angaben von /reference mit Alias-Optionen, um die Quelldatei zu kompilieren. Die Optionen sehen wie folgt aus:

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

Dadurch werden die externen Aliase "GridV1" und "GridV2" festgelegt, die Sie in dem Programm über eine extern-Anweisung einbinden:

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

Danach können Sie auf das Datenblatt-Steuerelement aus grid.dll heraus verweisen, indem Sie dem Namen des Steuerelements "GridV1" wie folgt voranstellen:

GridV1::Grid

Zusätzlich können Sie auf das Datenblatt-Steuerelement aus grid20.dll heraus verweisen, wenn Sie dem Namen des Steuerelements "GridV2" wie folgt voranstellen:

GridV2::Grid 

Siehe auch

Weitere Ressourcen

C#-Compileroptionen

Projekteigenschaften (Visual Studio)