/reference (Opciones del compilador de C#)
La opción /reference hace que el compilador importe información de tipo public al archivo especificado del proyecto actual, permitiéndole así hacer referencia a los metadatos desde los archivos de ensamblado especificados.
/reference:[alias=]filename
/reference:filename
Argumentos
filename
Nombre de un archivo que contiene un manifiesto del ensamblado. Para importar más de un archivo, incluya una opción /reference independiente para cada archivo.alias
Un identificador de C# válido que representa al espacio de nombres raíz que contendrá todos los espacios de nombres del ensamblado.
Comentarios
Para importar más de un archivo, incluya una opción /reference para cada archivo.
Los archivos que importe deben contener un manifiesto, y el archivo de salida debe haberse compilado con una de las opciones /target diferentes de /target:module.
/r es la forma abreviada de /reference.
Utilice addmodule para importar metadatos de un archivo de salida que no contenga un manifiesto del ensamblado.
Si hace referencia a un ensamblado (Ensamblado A) que, a su vez, hace referencia a otro ensamblado (Ensamblado B), también deberá hacer referencia al ensamblado B si:
Un tipo utilizado en el Ensamblado A hereda de un tipo o implementa una interfaz del Ensamblado B.
Se invoca un campo, una propiedad, un evento o un método que devuelve un tipo o tiene un tipo de parámetro de Ensamblado B.
Utilice /lib para especificar el directorio en el que se encuentran una o varias de las referencias de ensamblados. El tema /lib trata también sobre los directorios donde el compilador busca ensamblados.
Para que el compilador reconozca un tipo en un ensamblado, y no en un módulo, debe obligársele a que resuelva el tipo, lo que se puede conseguir definiendo una instancia del tipo. Existen otras formas de que el compilador resuelva nombres de tipos en un ensamblado; por ejemplo, si hereda de un tipo de un ensamblado, el compilador reconocerá el nombre del tipo.
A veces, es necesario hacer referencia a dos versiones diferentes del mismo componente desde un solo ensamblado. Para ello, utilice la subopción de alias en el modificador /reference para que cada archivo distinga entre los dos archivos. Dicho alias se utilizará como calificador del nombre del componente y se resolverá como tal componente en uno de los archivos.
El archivo de respuesta csc.rsp, que hace referencia a los ensamblados utilizados comúnmente en .NET Framework, es el predeterminado. Use /noconfig si no desea que el compilador use csc.rsp.
Nota
En Visual Studio, use el cuadro de diálogo Agregar referencia. Para obtener más información, vea Cómo: Agregar o quitar referencias en Visual Studio. En Visual Studio 2010 y versiones posteriores, para garantizar que la adición de referencias mediante la opción /reference y mediante el cuadro de diálogo Agregar referencia tienen un comportamiento equivalente, la propiedad Incrustar tipos de interoperabilidad debe establecerse en False para el ensamblado que se va a agregar. True es el valor predeterminado de esa propiedad.
Ejemplo
En este ejemplo se muestra cómo usar la característica de alias externo.
Compile el archivo de código fuente e importe los metadatos de grid.dll y grid20.dll, que se compilaron anteriormente. Los dos archivos DLL contienen versiones independientes del mismo componente y el usuario utiliza dos modificadores /reference con opciones de alias para compilar el archivo de código fuente. Las opciones tienen la apariencia siguiente:
/reference:GridV1=grid.dll y /reference:GridV2=grid20.dll
Con ello se crean los alias externos "GridV1" y "GridV2" que podrá utilizar en su programa por medio de una instrucción extern:
extern alias GridV1;
extern alias GridV2;
// Using statements go here.
Una vez hecho esto, puede hacer referencia al control de cuadrícula de grid.dll anteponiendo GridV1 al nombre de control, de la siguiente forma:
GridV1::Grid
Además, puede hacer referencia al control de cuadrícula de grid20.dll anteponiendo GridV2 al nombre de control, de la siguiente forma:
GridV2::Grid