/reference (параметры компилятора C#)
Параметр /reference указывает компилятору импортировать сведения типа public из указанного файла в текущий проект. Это позволяет ссылаться на метаданные из указанных файлов сборок.
/reference:[alias=]filename
/reference:filename
Аргументы
filename
Имя файла, содержащего манифест сборки. Чтобы импортировать несколько файлов, включите отдельный параметр /reference для каждого файла.alias
Допустимый идентификатор C#, который представляет корневое пространство имен, содержащее все пространства имен сборки.
Заметки
Чтобы импортировать данные из нескольких файлов, включите отдельный параметр /reference для каждого файла.
Импортируемые файлы должны содержать манифест; выходной файл следует компилировать с параметрами /target, отличными от /target:module.
/r является короткой формой /reference.
Для импорта метаданных из выходного файла, который не содержит манифест сборки, используется параметр /addmodule.
При ссылке на сборку (сборку А), которая, в свою очередь, ссылается на другую сборку (сборку Б), необходимо ссылаться на сборку Б в указанных ниже случаях.
Используемый в сборке A тип наследует от типа сборки Б или реализует интерфейс из этой сборки.
Вызывается поле, свойство, событие или метод, которые имеют тип возвращаемых данных или тип параметра из сборки Б.
Для указания каталога, в котором находятся связанные сборки, используется параметр /lib. В разделе, посвященном параметру /lib, также рассматриваются каталоги, в которых компилятор выполняет поиск сборок.
Чтобы компилятор мог распознавать тип в сборке (не в модуле), ему следует указать принудительно разрешать типы. Это можно сделать, определив экземпляр типа. Возможны и другие способы разрешения компилятором имен типов в сборке. Например, если тип наследуется от типа в сборке, его имя будет распознаваться компилятором.
Иногда бывает необходимо сослаться на две различные версии одного компонента из одной сборки. Для этого следует использовать подпараметр псевдонима параметра /reference для каждого файла, чтобы различить оба файла. Этот псевдоним используется в качестве квалификатора имени компонента и разрешается в компонент в одном из файлов.
Файл ответов csc (RSP-файл), который ссылается на часто используемые сборки .NET Framework, используется по умолчанию. Параметр /noconfig позволяет запретить компилятору использовать файл csc.rsp.
Примечание
В Visual Studio используйте диалоговое окно Добавить ссылку.Для получения дополнительной информации см. Практическое руководство. Добавление и удаление ссылок с помощью диалогового окна "Добавление ссылок".В Visual Studio 2010 и более поздних версиях для обеспечения эквивалентного поведения при добавлении ссылок с помощью /reference и с помощью диалогового окна Добавить ссылку свойству Внедрить типы взаимодействия добавляемой сборки должно быть задано значение False.True является значением по умолчанию для этого свойства.
Пример
В следующем примере показан способ использования псевдонима extern.
В примере компилируется файл исходного кода и импортируются метаданные из сборок grid.dll и grid20.dll,которые были скомпилированы ранее. Два DLL-файла содержат разные версии одного компонента, поэтому для компиляции файла исходного кода используется параметр /reference с подпараметрами псевдонимов. Эти параметры выглядят следующим образом:
/reference:GridV1=grid.dll и /reference:GridV2=grid20.dll
При этом устанавливаются внешние псевдонимы "GridV1" и "GridV2", которые используются посредством оператора "extern":
extern alias GridV1;
extern alias GridV2;
// Using statements go here.
После выполнения описанных выше действий можно ссылаться на элемент управления "сетка" из файла grid.dll, предваряя имя элемента управления префиксом GridV1, как показано в следующем коде:
GridV1::Grid
Кроме того, можно ссылаться на элемент управления "сетка" из файла grid20.dll, предваряя имя элемента управления префиксом GridV2, как показано ниже:
GridV2::Grid
См. также
Задачи
Практическое руководство. Изменение свойств проекта и параметров конфигурации