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


Ссылки проекта

Чтобы написать код для внешнего компонента, необходимо предварительно включить в проект ссылку на этот компонент. Можно сделать ссылку на следующие типы компонентов:

  • Сборки или библиотеки классов платформы .NET Framework.

  • COM-компоненты

  • Другие сборки или библиотеки классов проектов в одном решении

  • веб-службы XML

Дополнительные сведения о веб-службах XML см. в разделе Веб-ссылки в Visual Studio.

Добавление ссылок во время разработки

Используйте диалоговое окно "Добавить ссылку" для добавления ссылок в компоненты во время разработки.

Можно также использовать диалоговое окно Добавить ссылку для поиска не указанных в списке сборок. Невозможно добавить ссылку из глобальный кэш сборок (GAC), так как это является строго частью среды выполнения.

После внесения ссылки на сборку в проекте, среда разработки Visual Studio ищет сборки в следующих расположениях:

  • Каталог текущего проекта. (Можно найти эти сборки, используя вкладку Обзор.)

  • Другие каталоги проектов в одном решении. (Можно найти эти сборки на вкладке Проекты.)

Дополнительные сведения о том, как добавить ссылку на этапе разработки, см. в разделе Практическое руководство. Добавление и удаление ссылок в Visual Studio.

Примечание

Все проекты содержат неявную ссылку на библиотеку mscorlib.Проекты Visual Basic содержат неявную ссылку на Microsoft.VisualBasic.

В Visual Studio 2010 все проекты содержат неявную ссылку на System.Core, даже если System.Core была удалена из списка ссылок.

Ссылки на общие компоненты во время выполнения

Во время выполнения компоненты должны быть либо в папке выходного файла проекта, либо в глобальный кэш сборок (GAC). Если проект содержит ссылку на объект, находящийся не в одном из этих расположений, а в другом месте, то при построении проекта ссылка на него должна быть скопирована в папку выходного файла проекта. Свойство CopyLocal указывает, нужно ли сделать эту копию. Если значение равно True, ссылка копируется в каталог проекта во время построения проекта. Если значение равно False, ссылка не копируется.

Если выполняется развертывание приложения, содержащего ссылку на пользовательский компонент, зарегистрированный в глобальном кэше сборок (GAC), компонент не будет развернут вместе с приложением, вне зависимости от свойства CopyLocal. В более ранних версиях среды разработки Visual Studio можно установить свойство CopyLocal для ссылки, чтобы убедиться, что сборка будет развернута. Теперь необходимо вручную добавить сборку в папку \Bin. Это обеспечивает проверку всего пользовательского кода, уменьшая риск появления незнакомого пользовательского кода.

По умолчанию свойству CopyLocal присваивается значение False, если сборка или компонент находится в глобальном кэше сборок или является компонентом структуры. В противном случае присваивается значение True. Для ссылок между проектами всегда задается значение True.

Ссылка на проект или сборку, предназначенную для другой версии платформы .NET Framework

Разработчики могут создавать приложения, которые ссылаются на проекты или сборки, предназначенные для другой версии платформы .NET Framework. Например, разработчик может создать приложение, предназначенное для Клиентский профиль .NET Framework 4 и ссылающееся на сборку, которая предназначена для .NET Framework 2.0. При создании проекта, предназначенного для более ранней версии .NET Framework, установка в этом проекте ссылки на проект или сборку для Клиентский профиль .NET Framework 4 или для платформы .NET Framework версии 4 невозможна.

Дополнительные сведения см. в разделе Указание конкретной версии или профиля платформы .NET Framework;

Ссылки между проектами и файловые ссылки

Файловые ссылки являются прямыми ссылками на сборки; создаются они с помощью вкладки Обзор диалогового окна Добавить ссылку. Ссылки между проектами являются ссылками на проекты, содержащие сборки; они создаются с помощью вкладки Проект диалогового окна Добавить ссылку.

Преимуществом ссылки между проектами является то, что в системе построения создается зависимость между построениями проектов. Поэтому зависимый проект будет заново собран, если он был изменен с момента последнего построения проекта, содержащего ссылку. Файловая ссылка не создает зависимости от сборки, поэтому имеется возможность собрать содержащий ссылку проект без сборки зависимого проекта, и ссылки устаревают. (Т.е. проект может ссылаться на ранее собранную версию проекта.) Это может привести к необходимости нескольких версий одной библиотеки DLL в папке Bin, что невозможно. В случае этого конфликта будет отображено сообщение следующего типа: Предупреждение. Невозможно скопировать зависимость <файл> из проекта <проект> в каталог выполнения, поскольку она перезапишет ссылку <файл>..

Не следует добавлять ссылки на выходные файлы другого проекта того же решения, поскольку это может привести к ошибкам компиляции. Вместо этого используйте вкладку Проекты диалогового окна Добавить ссылку для создания ссылки между проектами в одном решении. Это позволит упростить коллективную разработку за счет более эффективного управления библиотеками классов, создаваемыми в проектах. Дополнительные сведения см. в разделах Диагностика неработающих ссылок и Практическое руководство. Создание и удаление зависимостей проекта.

Примечание

В Visual Studio 2010 ссылка на файл создается вместо ссылки на проект, если в качестве требуемой версии платформы .NET Framework одного проекта используется версия 4, а требуемая версия .NET Framework других проектов — 2, 3 или 3.5.

Веб-ссылки

Можно также добавить веб-ссылки с помощью диалогового окна Добавить веб-ссылку. Дополнительные сведения см. в разделе Практическое руководство. Добавление и удаление веб-ссылок.

См. также

Задачи

Диагностика неработающих ссылок

Практическое руководство. Добавление и удаление ссылок в Visual Studio

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

Создание ссылок на пространства имен и компоненты

Управление ссылками

Программирование с использованием сборок