/reference (C#-Compileroptionen)

Die Option /reference veranlasst den Compiler, öffentliche Typinformationen in der angegebenen Datei in das aktuelle Projekt zu importieren, sodass die Verweismetadaten aus den angegebenen Assemblydateien aktiviert werden.

Syntax

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

Argumente

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

alias
Ein gültiger C#-Bezeichner, der einen Stammnamespace darstellt, der alle Namespaces in der Assembly enthält.

Hinweise

Um mehr als eine Datei zu importieren, fügen Sie eine Option /reference für jede Datei ein.

Die zu importierenden Dateien müssen ein Manifest enthalten. Die Ausgabedatei muss mit einer der Optionen /target außer /target:module kompiliert werden.

/r ist die Kurzform von /reference.

Verwenden Sie /addmodule, um Metadaten aus einer Ausgabedatei zu importieren, die kein Assemblymanifest enthält.

Wenn Sie auf eine Assembly (Assembly A) verweisen, die auf eine andere Assembly (Assembly B) verweist, müssen Sie auf Assembly B verweisen, wenn:

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

  • Sie rufen ein Feld, eine Eigenschaft, ein Ereignis oder eine Methode auf, das/die über einen Rückgabetyp oder Parametertyp von Assembly B verfügt.

Verwenden Sie /lib, um das Verzeichnis anzugeben, in dem sich ein oder mehrere der Assemblyverweise befinden. Das /lib-Thema erläutert auch die Verzeichnisse, 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 durch die Definition einer Instanz des Typs erzwungen werden. Der Compiler verfügt über andere Möglichkeiten, Typnamen in einer Assembly aufzulösen. Beispielsweise wird beim Erben von einem Typ in einer Assembly der Typname vom Compiler erkannt werden.

Manchmal ist es erforderlich, auf zwei verschiedene Versionen derselben Komponente aus einer Assembly heraus zu verweisen. Verwenden Sie hierzu die Alias-Teiloption auf dem Schalter /reference für jede Datei, um zwischen den beiden Dateien zu unterscheiden. Dieser Alias wird als Qualifizierer für den Namen der Komponente verwendet und wird für die Komponente in einer der Dateien aufgelöst.

Die csc-Antwortdatei (.rsp), welche auf häufig verwendete .NET Framework-Assemblys verweist, wird standardmäßig verwendet. Verwenden Sie /noconfig, wenn der Compiler csc.rsp nicht verwenden soll.

Hinweis

Verwenden Sie in Visual Studio das Dialogfeld Verweis hinzufügen. Weitere Informationen finden Sie unter Vorgehensweise: Hinzufügen und Entfernen von Verweisen mit dem Verweis-Manager. Um ein gleichwertiges Verhalten zwischen Hinzufügen von Verweisen mit /reference und Hinzufügen von Verweisen mithilfe des Dialogfelds Verweis hinzufügen sicherzustellen, legen Sie die Eigenschaft Einbetten von Interop-Typen für die Assembly, die Sie hinzufügen möchten, auf FALSE fest. Der Standardwert für diese Eigenschaft ist TRUE.

Beispiel

Dieses Beispiel zeigt die Verwendung der Funktion extern-Alias.

Kompilieren Sie die Quelldatei und importieren Sie Metadaten aus grid.dll und grid20.dll, die bereits zuvor kompiliert wurden. Die beiden DLLs enthalten separate Versionen derselben Komponente, und Sie verwenden zwei /reference mit Aliasoptionen, um die Quelldatei zu kompilieren. Die Optionen sehen folgendermaßen aus:

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

Dadurch werden die externen Aliase „GridV1“ und „GridV2“ eingerichtet, die Sie in Ihrem Programm über eine extern-Anweisung verwenden:

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

Sobald dies geschehen ist, können Sie auf das Grid-Steuerelement von „grid.dll“ verweisen, indem Sie dem Namen des Steuerelements wie folgt ein „GridV1“ voranstellen:

GridV1::Grid  

Darüber hinaus können Sie auf das Grid-Steuerelement aus „grid20.dll“ verweisen, indem Sie dem Namen des Steuerelements wie folgt ein „GridV2“ voranstellen:

GridV2::Grid   

Siehe auch

C#-Compileroptionen
Verwalten von Projekt- und Projektmappeneigenschaften