Поделиться через


/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.В 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 

См. также

Другие ресурсы

Параметры компилятора C#

Свойства проекта (Visual Studio)