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

Перед написанием кода для внешних компонентов или подключенных служб необходимо включить в проект ссылки на них. По сути, ссылка — это запись в файле проекта, которая содержит сведения, необходимые Visual Studio для поиска компонента или службы.

Чтобы добавить ссылку, в обозревателе решений щелкните правой кнопкой мыши узел Ссылки или Зависимости и выберите команду Добавить ссылку. Вы также можете щелкнуть узел проекта правой кнопкой мыши и выбрать пункт Добавить > Ссылка. Дополнительные сведения см. в разделе Практическое руководство. Добавление и удаление ссылок.

Добавление ссылки в Visual C++

Вы можете добавить ссылку на следующие типы компонентов и служб:

  • Библиотеки классов или сборки .NET

  • Приложения универсальной платформы Windows

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

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

  • общие проекты;

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

Ссылки на приложения UWP

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

Проекты универсальной платформы Windows (UWP) могут создавать ссылки на другие проекты UWP в решении либо на двоичные файлы или проекты, ориентированные на Windows 8.1, при условии, что эти проекты не используют интерфейсы API, которые являются устаревшими в Windows 10. Более подробную информацию см. в разделе Перенос приложения из среды выполнения Windows 8 в UWP.

Если вы решили изменить целевую платформу проектов Windows 8.1 на Windows 10, ознакомьтесь со статьей Перенос, миграция и обновление проектов Visual Studio.

Справочник по пакетам SDK расширений

Приложения UWP на Visual Basic, C#, C++ и JavaScript могут ссылаться на пакеты SDK расширений, предназначенные для Windows 8.1, при условии, что эти пакеты SDK расширений не используют API, которые являются нерекомендуемыми в Windows 10. Проверьте сайт поставщика пакета SDK расширений, чтобы выяснить, могут ли на него ссылаться приложения UWP.

Если выяснится, что пакет SDK расширений, на который ссылается ваше приложение, не поддерживается, то вы должны выполнить следующие действия.

  1. Посмотреть имя проекта, который вызывает ошибку. Платформа, для которой предназначен этот проект, указывается в скобках рядом с именем проекта. Например, MyProjectName (Windows 8.1) означает, что проект MyProjectName предназначен для платформы Windows 8.1.

  2. Перейдите на сайт поставщика неподдерживаемого пакета SDK расширений и установите версию пакета SDK расширений с зависимостями, совместимыми с версией платформы, для которой предназначен ваш проект.

    Примечание

    Один из способов узнать, имеет ли пакет SDK расширений зависимости от других пакетов SDK расширений, — воспользоваться диспетчером ссылок. Перезапустите Visual Studio, создайте проект C# приложения UWP. Щелкните его правой кнопкой мыши и выберите пункт Добавить ссылку. Перейдите на вкладку Windows, а затем на вложенную вкладку Расширения. Выберите пакет SDK расширений. Посмотрите на правую панель в диспетчере ссылок. Если этот пакет имеет зависимости, они будут перечислены в этой панели.

    Важно!

    Если проект предназначен для Windows 10 и установленный в предыдущем шаге пакет SDK расширений имеет зависимость от пакета среды выполнения Microsoft Visual C++, то совместимой с Windows 10 версией этого пакета является v14.0, которая устанавливается вместе с Visual Studio.

  3. Если установленный на предыдущем шаге пакет SDK расширений имеет зависимости от других пакетов SDK расширений, перейдите на сайты поставщиков, являющихся владельцами зависимостей, и установите версии этих зависимостей, совместимые с версией платформы, для которой предназначен ваш проект.

  4. Перезапустите Visual Studio и откройте ваше приложение.

  5. Щелкните правой кнопкой мыши узел Ссылки или Зависимости в проекте, который вызвал ошибку, и выберите команду Добавить ссылку.

  6. Откройте вкладку Windows, а затем вложенную вкладку Расширения, после чего снимите флажки для старых пакетов SDK расширений и установите флажки для новых пакетов SDK расширений. Нажмите кнопку ОК.

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

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

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

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

Примечание

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

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

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

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

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

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

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

Дополнительные сведения см. в статье Общие сведения о настройке для платформы.

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

Ссылки проектов на проекты — это ссылки на проекты, которые содержат сборки. Вы добавляете их на вкладке Проекты диалогового окна "Диспетчер ссылок". Visual Studio может найти сборку, если задан путь к проекту.

Если имеется проект, создающий сборку, необходимо сослаться на него и не использовать ссылку на файл (см. ниже). Преимущество ссылки проекта на проект состоит в том, что она создает зависимость между проектами в системе сборки. Зависимый проект будет собран, если он был изменен с момента последней сборки ссылающегося проекта. Ссылка на файл не создает зависимость сборки, поэтому можно собрать ссылающийся проект, не создавая зависимый, и ссылка может устареть. (То есть проект может ссылаться на ранее собранную версию проекта.) Это может привести к тому, что в каталоге bin потребуется несколько версий одной библиотеки DLL, что невозможно. При возникновении этого конфликта вы увидите сообщение "Предупреждение. Невозможно скопировать зависимость file из проекта project в каталог выполнения, поскольку она перезапишет ссылку file". Дополнительные сведения см. в статьях Диагностика неработающих ссылок и Практическое руководство. Создание и удаление зависимостей проекта.

Примечание

Ссылка на файл вместо ссылки проекта на проект создается, если целевая версия .NET Framework одного проекта — 4.5, а целевая версия другого проекта — 2, 3, 3.5 или 4.0.

Ссылки на общий проект

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

Ссылки на файлы

Ссылки на файлы — это прямые ссылки на сборки вне контекста проекта Visual Studio. Они создаются на вкладке Обзор диспетчера ссылок. Ссылку на файл следует использовать в случае, если имеется лишь сборка или компонент, но не проект, который создает ее в качестве выходных данных.

См. также