/reference (C#-Compileroptionen)/reference (C# Compiler Options)

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.The /reference option causes the compiler to import public type information in the specified file into the current project, thus enabling you to reference metadata from the specified assembly files.

SyntaxSyntax

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

ArgumenteArguments

filename
Der Name einer Datei, die ein Assemblymanifest enthält.The name of a file that contains an assembly manifest. Um mehr als eine Datei zu importieren, fügen Sie eine separate Option /reference für jede Datei ein.To import more than one file, include a separate /reference option for each file.

alias
Ein gültiger C#-Bezeichner, der einen Stammnamespace darstellt, der alle Namespaces in der Assembly enthält.A valid C# identifier that will represent a root namespace that will contain all namespaces in the assembly.

HinweiseRemarks

Um mehr als eine Datei zu importieren, fügen Sie eine Option /reference für jede Datei ein.To import from more than one file, include a /reference option for each file.

Die zu importierenden Dateien müssen ein Manifest enthalten. Die Ausgabedatei muss mit einer der Optionen /target außer /target:module kompiliert werden.The files you import must contain a manifest; the output file must have been compiled with one of the /target options other than /target:module.

/r ist die Kurzform von /reference./r is the short form of /reference.

Verwenden Sie /addmodule, um Metadaten aus einer Ausgabedatei zu importieren, die kein Assemblymanifest enthält.Use /addmodule to import metadata from an output file that does not contain an assembly manifest.

Wenn Sie auf eine Assembly (Assembly A) verweisen, die auf eine andere Assembly (Assembly B) verweist, müssen Sie auf Assembly B verweisen, wenn:If you reference an assembly (Assembly A) that references another assembly (Assembly B), you will need to reference Assembly B if:

  • Ein verwendeter Typ von Assembly A erbt von einem Typ oder implementiert eine Schnittstelle aus Assembly B.A type you use from Assembly A inherits from a type or implements an interface from 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.You invoke a field, property, event, or method that has a return type or parameter type from Assembly B.

Verwenden Sie /lib, um das Verzeichnis anzugeben, in dem sich ein oder mehrere der Assemblyverweise befinden.Use /lib to specify the directory in which one or more of your assembly references is located. Das /lib-Thema erläutert auch die Verzeichnisse, in denen der Compiler nach Assemblys sucht.The /lib topic also discusses the directories in which the compiler searches for assemblies.

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.In order for the compiler to recognize a type in an assembly, and not in a module, it needs to be forced to resolve the type, which you can do by defining an instance of the type. 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.There are other ways to resolve type names in an assembly for the compiler: for example, if you inherit from a type in an assembly, the type name will then be recognized by the compiler.

Manchmal ist es erforderlich, auf zwei verschiedene Versionen derselben Komponente aus einer Assembly heraus zu verweisen.Sometimes it is necessary to reference two different versions of the same component from within one assembly. Verwenden Sie hierzu die Alias-Teiloption auf dem Schalter /reference für jede Datei, um zwischen den beiden Dateien zu unterscheiden.To do this, use the alias suboption on the /reference switch for each file to distinguish between the two files. Dieser Alias wird als Qualifizierer für den Namen der Komponente verwendet und wird für die Komponente in einer der Dateien aufgelöst.This alias will be used as a qualifier for the component name, and will resolve to the component in one of the files.

Die csc-Antwortdatei (.rsp), welche auf häufig verwendete .NET Framework-Assemblys verweist, wird standardmäßig verwendet.The csc response (.rsp) file, which references commonly used .NET Framework assemblies, is used by default. Verwenden Sie /noconfig, wenn der Compiler csc.rsp nicht verwenden soll.Use /noconfig if you do not want the compiler to use csc.rsp.

Hinweis

Verwenden Sie in Visual Studio das Dialogfeld Verweis hinzufügen.In Visual Studio, use the Add Reference dialog box. Weitere Informationen finden Sie unter Vorgehensweise: Hinzufügen und Entfernen von Verweisen mit dem Verweis-Manager.For more information, see How to: Add or Remove References By Using the Reference 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.To ensure equivalent behavior between adding references by using /reference and adding references by using the Add Reference dialog box, set the Embed Interop Types property to False for the assembly that you're adding. Der Standardwert für diese Eigenschaft ist TRUE.True is the default value for the property.

BeispielExample

Dieses Beispiel zeigt die Verwendung der Funktion extern-Alias.This example shows how to use the extern alias feature.

Kompilieren Sie die Quelldatei und importieren Sie Metadaten aus grid.dll und grid20.dll, die bereits zuvor kompiliert wurden.You compile the source file and import metadata from grid.dll and grid20.dll,which have been compiled previously. Die beiden DLLs enthalten separate Versionen derselben Komponente, und Sie verwenden zwei /reference mit Aliasoptionen, um die Quelldatei zu kompilieren.The two DLLs contain separate versions of the same component, and you use two /reference with alias options to compile the source file. Die Optionen sehen folgendermaßen aus:The options look like this:

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

Dadurch werden die externen Aliase „GridV1“ und „GridV2“ eingerichtet, die Sie in Ihrem Programm über eine extern-Anweisung verwenden:This sets up the external aliases "GridV1" and "GridV2," which you use in your program by means of an extern statement:

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:Once this is done, you can refer to the grid control from grid.dll by prefixing the control name with GridV1, like this:

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:In addition, you can refer to the grid control from grid20.dll by prefixing the control name with GridV2 like this:

GridV2::Grid   

Siehe auchSee Also

C#-CompileroptionenC# Compiler Options
Verwalten von Projekt- und ProjektmappeneigenschaftenManaging Project and Solution Properties