Свойства проекта: разделы References и Resources в Visual Studio
Закладка References (только для языка Visual Basic)
Закладка References позволяет разработчику ссылаться на классы, принадлежащие к другим .NET-сборкам, проектам или библиотекам DLL. Как только проект или библиотека DLL добавлены в список ссылок, класс становится доступен либо по своему полному имени, включающему пространство имен, либо просто по имени, если пространство имен импортировано в исходный файл. На рисунке ниже показана закладка References для проекта, ссылающегося на множество сборок:

Одной из особенностей этой закладки, предназначенной для разработчиков программ на языке Visual Basic, является кнопка Unused References, позволяющая выполнять поиск ссылок, которые можно удалить. Кроме того, можно добавлять пути к ссылкам (reference path), что дает возможность включать все сборки, расположенные в данном месте.
Как только сборка добавлена в список ссылок, любой открытый класс, содержащийся в этой сборке, становится видимым в проекте. Если класс вложен в пространство имен (которое может быть вложенной иерархией), то для ссылки на класс необходимо указывать его полное имя. В языках Visual Basic и C# предусмотрен механизм импортирования пространств имен, чтобы на классы можно было ссылаться непосредственно. Раздел References позволяет осуществлять глобальный импорт пространств имен для классов, принадлежащих проекту, без явного импорта в файл класса.
Ссылки на внешние сборки могут быть ссылками на файл или проект. Ссылка на файл — это прямая ссылка на отдельную сборку. Такие ссылки создаются с помощью закладки Browse в диалоговом окне Add Reference. Ссылка на проект — это ссылка на отдельный проект в решении. Все сборки, создающиеся проектом, динамически добавляются как ссылки. Ссылки на проекты создаются с помощью закладки Project в диалоговом окне Add Reference.
Преимущество ссылки на проект заключается в том, что она создает зависимость между проектами в системе сборки. Зависимый проект может быть собран заново, если он был изменен с момента последней сборки проекта, который на него ссылается. Ссылка на файл не создает зависимости между сборками, поэтому возможна ситуация, когда проект, ссылающийся на файл, будет собран, а зависимый проект — нет. Однако это может создать проблемы в ссылающемся проекте, который ожидает другую версию зависимого проекта.
Закладка Resources
Ресурсы проекта можно добавлять и удалять с помощью закладки Resources, показанной на рисунке ниже. В приведенном примере в приложение были добавлены две пиктограммы. Ресурсами могут быть изображения, текст, файлы и другие сериализуемые классы.

Этот интерфейс существенно облегчает работу с файлами ресурсов во время проектирования.
Управление ссылками в проекте
Область применения:
Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
Перед написанием кода для внешних компонентов или подключенных служб необходимо включить в проект ссылки на них. По сути, ссылка — это запись в файле проекта, которая содержит сведения, необходимые Visual Studio для поиска компонента или службы.
Добавление ссылки зависит от типа проекта для кода, над которым вы работаете:

-
Если узел зависимостей отображается вОбозреватель решений, можно использовать контекстное меню правой кнопкой мыши, чтобы выбрать пункт «Добавить ссылку на проект».
Вы также можете щелкнуть правой кнопкой мыши узел проекта и выбрать команду Добавить >ссылку на проект.

Если узел «Ссылки» отображается вОбозреватель решений, можно использовать контекстное меню правой кнопкой мыши, чтобы выбрать пункт «Добавить ссылку«.
Или щелкните правой кнопкой мыши узел проекта и выберите «Добавить >ссылку».
Вы можете добавить ссылку на следующие типы компонентов и служб:
- Библиотеки классов или сборки .NET
- приложения универсальной платформы Windows;
- компоненты COM
- другие сборки или библиотеки классов проектов в том же решении;
- Общие проекты
- веб-службы XML
Ссылки на приложения UWP
Универсальная платформа Windows (UWP) предоставляет общую платформу приложений для каждого устройства под управлением Windows. Сведения о создании приложения UWP см. в руководстве по созданию первого приложения универсальная платформа Windows в Visual Studio с помощью XAML и C#.
Ссылки на проекты
проекты универсальная платформа Windows (UWP) могут создавать ссылки на другие проекты UWP в решении или проекты Windows 8.1 или двоичные файлы, если эти проекты не используют API, которые не рекомендуется использовать в Windows 10 и более поздних версиях. Более подробную информацию см. в разделе Перенос приложения из среды выполнения Windows 8 в UWP.
Если вы решили изменить целевую платформу проектов Windows 8.1 на Windows 10 или более поздней версии, ознакомьтесь со статьей Перенос, миграция и обновление проектов Visual Studio.
Сведения о создании и создании нового приложения UWP для Windows 10 и Windows 11 см. в разделе «Выбор версии UWP».
Справочник по пакетам SDK расширений
Приложения Visual Basic, C#, C++ и JavaScript универсальная платформа Windows (UWP) могут ссылаться на пакеты SDK расширений, предназначенные для Windows 8.1, если эти пакеты SDK расширений не используют API, которые не рекомендуется использовать в Windows 10 и более поздних версиях. Проверьте сайт поставщика пакета SDK для расширений, чтобы узнать, можно ли ссылаться на него приложениями UWP.
Если вы определяете, что пакет SDK расширения, на который ссылается приложение, не поддерживается, необходимо выполнить следующие действия.
- Посмотреть имя проекта, который вызывает ошибку. Платформа, предназначенная для проекта, отмечена в скобках рядом с именем проекта. Например, MyProjectName (Windows 8.1) означает, что проект MyProjectName предназначен для платформы Windows 8.1.
- Перейдите на сайт поставщика неподдерживаемого пакета SDK расширений и установите версию пакета SDK расширений с зависимостями, совместимыми с версией платформы, для которой предназначен ваш проект.
Примечание. Один из способов узнать, имеет ли пакет SDK расширений зависимости от других пакетов SDK расширений, — воспользоваться диспетчером ссылок. Перезапустите Visual Studio, создайте проект приложения UWP на C#, а затем щелкните проект правой кнопкой мыши и выберите «Добавить ссылку«. Перейдите на вкладку Windows, а затем на вложенную вкладку Расширения. Выберите пакет SDK расширений. Посмотрите на правую панель в диспетчере ссылок. Если этот пакет имеет зависимости, они будут перечислены в этой панели.
Важно! Если проект предназначен исключительно для Windows 10 и установленный в предыдущем шаге пакет SDK расширений имеет зависимость от пакета среды выполнения Microsoft Visual C++, то совместимой с Windows 10 версией этого пакета является v14.0, которая устанавливается вместе с Visual Studio.
Добавление ссылки во время разработки
При создании ссылки на сборку в проекте 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, что невозможно. При возникновении этого конфликта появится сообщение, например «Предупреждение: зависимость «файл» проекта «project» не может быть скопирована в каталог запуска, так как она перезаписывает ссылку «файл». Дополнительные сведения см. в разделе «Устранение неполадок с неисправными ссылками » и «Практическое руководство. Создание и удаление зависимостей проекта».
Ссылка на файл вместо ссылки проекта на проект создается, если целевая версия .NET Framework одного проекта — 4.5, а целевая версия другого проекта — 2, 3, 3.5 или 4.0.
Ссылки на общий проект
В отличие от большинства других типов проектов, общий проект не имеет двоичных выходных данных. Вместо этого код компилируется в каждый проект, который ссылается на него. Общие проекты позволяют создавать общий код, на который ссылается множество различных проектов приложений. Код компилируется как часть каждого ссылающегося проекта и может включать директивы компилятора, которые помогают внедрить функции конкретной платформы в общую базу кода. Добавьте ссылку на общий проект на вкладке Общие проекты диалогового окна «Диспетчер ссылок».
Ссылки на файлы
Ссылки на файлы — это прямые ссылки на сборки вне контекста проекта Visual Studio. Они создаются на вкладке Обзор диспетчера ссылок. Ссылку на файл следует использовать в случае, если имеется лишь сборка или компонент, но не проект, который создает ее в качестве выходных данных.
См. также
- Диагностика неработающих ссылок
- Практическое руководство. Добавление и удаление ссылок
