Поиск ссылок в коде
Область применения:
Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
Чтобы найти, где именно в базе кода используются ссылки на определенные элементы кода, можно использовать команду Найти все ссылки. Команда Найти все ссылки находится в контекстном меню элемента, ссылки на который нужно найти. Или, если вы являетесь пользователем клавиатуры, нажмите клавиши SHIFT + F12.
Результаты отображаются в окне инструментов именованных на> элемент, где элемент является именем элемента, который вы ищете. Панель инструментов в окне ссылок позволяет выполнять следующие действия:
- Изменить область поиска в раскрывающемся списке. Можно искать только в измененных документах или во всем решении.
- Копировать выбранный элемент, на который указывают ссылки, с помощью кнопки Копировать.
- Использовать кнопки для перехода к следующему или предыдущему расположению в списке, а также клавиши F8 и SHIFT+F8 для выполнения этих же действий.
- Отменить любые фильтры, примененные к результатам, с помощью кнопки Очистить все фильтры.
- Изменить порядок группировки возвращаемых элементов с помощью соответствующего параметра в раскрывающемся списке Группировать по:.
- Сохранить текущее окно результатов поиска с помощью кнопки Сохранить результаты. При нажатии этой кнопки текущие результаты поиска остаются в этом окне, а результаты нового поиска будут выводиться в новом окне инструмента.
- Искать строки в результатах поиска, вводя текст в поле Поиск всех ссылок.
Также можно навести указатель мыши на любой результат поиска, чтобы выполнить предварительный просмотр этой ссылки.

Переход по ссылкам
Для перехода по ссылкам в окне ссылок можно использовать следующие методы:
- Для перехода к следующей или предыдущей ссылке можно использовать клавиши F8 и SHIFT+F8 соответственно.
- Чтобы перейти к ссылке в коде, дважды щелкните ее или нажмите на ней клавишу ВВОД.
- В контекстном меню ссылки выберите команды К предыдущему или К следующему.
- Выберите клавиши СТРЕЛКА ВВЕРХ и СТРЕЛКА ВНИЗ (если они включены в диалоговом окне «Параметры«). Чтобы включить эту функцию, в строке меню выберите вкладки «Параметры>среды>инструментов>» и «Окна«, а затем в разделе вкладки «Предварительный просмотр» выберите пункт «Разрешить открытие новых файлов» на вкладке «Предварительный просмотр» и «Просмотр выбранных файлов» в полях «Результаты поиска».
Изменение параметров группировки ссылок
По умолчанию ссылки группируются по проектам и затем по определению. Но этот порядок группировки можно изменить с помощью соответствующего параметра в раскрывающемся списке Группировать по: на панели инструментов. Например, установленный по умолчанию порядок Проект, затем определение можно изменить на Определение, затем проект или другие значения.
По умолчанию используются параметры группировки Определение и Проект, но вы можете добавлять другие способы с помощью команды Группировка в контекстном меню выбранного элемента. Добавление дополнительных групп может оказаться полезным, если решение содержит множество файлов и путей.
Фильтрация по типу ссылки в .NET
В C# или Visual Basic окно «Поиск ссылок» содержит столбец «Тип«, в котором он содержит список типов найденных ссылок. Этот столбец можно использовать для фильтрации по типу ссылки. Выберите значок фильтра, который отображается при наведении указателя мыши на заголовок столбца. Ссылки можно фильтровать по типам чтения, записи, ссылки, имени, пространства имен и типа.

После применения фильтра или набора фильтров его можно легко удалить с помощью кнопки «Очистить все фильтры».
Связанный контент
Добавление и удаление ссылок с помощью диспетчера ссылок
Область применения:
Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
Диалоговое окно «Диспетчер ссылок» позволяет добавлять ссылки на компоненты, которые разработали вы, корпорация Майкрософт или другая организация, а также управлять этими ссылками. При разработке универсального приложения Windows ваш проект автоматически ссылается на все правильные библиотеки DLL пакета SDK Windows. При создании проекта .NET проект автоматически ссылается на необходимые компоненты, например пакет SDK для .NET, но необходимо добавить ссылки при добавлении функциональных возможностей. Некоторые API .NET представлены в компонентах, которые необходимо добавить вручную. Ссылки на компоненты COM или пользовательские компоненты необходимо добавить вручную.
Диалоговое окно «Диспетчер ссылок»
В левой части диалогового окна «Диспетчер ссылок» отображаются различные категории в зависимости от типа проекта:
- Сборки с подгруппами Платформы и расширения (только платформа .NET Framework)
- COM содержит список всех COM-компонентов, ссылки на которые можно добавить.
- Проекты
- Общие проекты
- Windows с подгруппами Ядро и Расширения. Для просмотра ссылок в Windows SDK и пакетах SDK расширений можно использовать Обозреватель объектов.
- Обзор с подгруппой последних ссылок.
Примечание. При разработке проектов С++ элемент Обзор может не отображаться в диалоговом окне «Диспетчер ссылок».
Добавление ссылки
- В Обозреватель решений щелкните правой кнопкой мыши узел «Ссылки» или «Зависимости«, а затем выберите «Добавить ссылку на проект», «Добавить ссылку на общий проект» или «Добавить COM-ссылку» в контекстном меню. (Можно щелкнуть правой кнопкой мыши узел проекта и выбрать пункт Добавить из всплывающего меню, чтобы выбрать эти параметры.)
Будет открыт Диспетчер ссылок со списком доступных ссылок по группам. 
- Выберите ссылку для добавления и нажмите кнопку «ОК«.
Примечание. Если вы не видите нужную ссылку, нажмите кнопку «Обзор «, чтобы найти ссылку. (Если вы разрабатываете проекты C++, возможно, вы не увидите вариант обзора.)
Вкладка «Сборки» (только платформа .NET Framework)
Вкладка «Сборки» недоступна для проектов, предназначенных для .NET Core или .NET 5 и более поздних версий, так как сборки для этих проектов добавляются как в виде пакетов NuGet, так и включаются путем назначения определенной версии .NET. Чтобы просмотреть ссылки на сборки в проекте, разверните узел зависимостей в проекте и просмотрите платформы . На узле зависимостей можно щелкнуть правой кнопкой мыши, чтобы добавить или удалить ссылки на проекты, или открыть браузер пакетов NuGet для управления пакетами NuGet. См. статью «Установка пакетов и управление ими в Visual Studio» с помощью диспетчер пакетов NuGet в документации по NuGet.
Для платформа .NET Framework проектов на вкладке «Сборки» перечислены все сборки .NET, доступные для ссылки. Вкладка Сборки не содержит никаких сборки из глобального кэша сборок (GAC), так как сборки в глобальном кэше сборок являются частью среды выполнения. Если вы развертываете или копируете приложение, содержащее ссылку на сборку, зарегистрированную в GAC, сборка не развертывается или копируется с приложением независимо от локального параметра копирования . Дополнительные сведения см. в статье Управление ссылками в проекте.
При добавлении вручную ссылки на любое из пространств имен EnvDTE (EnvDTE, EnvDTE80, EnvDTE90, EnvDTE90a или EnvDTE100) установите в окне Свойства для свойства ссылки Внедрить типы взаимодействия значение False. Задание для этого свойства значения True может привести к проблемам сборки, так как некоторые свойства EnvDTE не допускают внедрения.
Все проекты классических приложений содержат неявную ссылку на библиотеку mscorlib. Проекты Visual Basic содержат неявную ссылку на Microsoft.VisualBasic. Все проекты содержат неявную ссылку на System.Core, даже если она была удалена из списка ссылок.
Вкладка «Сборки» состоит из двух подзадачи:
- В разделе Платформа перечислены все сборки, из которых состоит целевая платформа. Для проектов, которые не ориентированы на .NET Core или универсальную платформу Windows, на вкладке Платформа перечислены сборки из целевой версии платформы. Пользователь должен добавить все ссылки, которые нужны приложению. Проекты универсальной платформы Windows по умолчанию содержат ссылки на все сборки в требуемой версии .NET Framework. В управляемых проектах доступный только для чтения узел в папке Ссылки в Обозревателе решений содержит ссылку на всю платформу .NET Framework. Соответственно, вкладка Framework не перечисляет сборки из платформы и вместо этого отображает следующее сообщение: «Все сборки Framework уже ссылаются. С помощью обозревателя объектов исследуйте ссылки в Framework».
- В разделе Расширения перечислены все сборки, разработанные внешними поставщиками компонентов и элементов управления для расширения целевой версии .NET Framework. В зависимости от назначения пользовательского приложения эти сборки могут понадобиться ему. Список расширений состоит из сборок, зарегистрированных в следующих местах: 32-разрядный компьютер:
- HKEY_CURRENT_USER\SOFTWARE\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]
- HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]
- HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]
И более старые версии [идентификатор требуемой версии .NET Framework]
Например, если проект предназначен для платформа .NET Framework 4 на 32-разрядном компьютере, расширения перечисляют сборки, зарегистрированные в папке \Microsoft.NETFramework\v4.0\AssemblyFoldersEx, \Microsoft.NETFramework\v3.5\AssemblyFoldersEx, \Microsoft.NETFramework\v3.0\AssemblyFoldersEx и \Microsoft.NETFramework\v2.0\AssemblyFoldersEx.
Некоторые компоненты в списке могут не отображаться в зависимости от версии платформы проекта. Эта ситуация может произойти в следующих условиях:
- Компонент, использующий новую версию платформы, не совместим с проектом, нацеленным на более раннюю версию платформы. Сведения об изменении целевой версии платформы для проекта см. в статье Общие сведения о настройке для платформы.
- Компонент, использующий старую версию платформа .NET Framework, несовместим с проектом, предназначенным для более новой платформа .NET Framework.
Дополнительные сведения о совместимости версий между версиями платформа .NET Framework см. в разделе «Совместимость версий».
Не следует добавлять ссылки на файлы в выходные данные другого проекта в том же решении, так как это может привести к ошибкам компиляции. Вместо этого следует создавать ссылки между проектами, используя вкладку Проекты диалогового окна Добавление ссылки. Эта практика упрощает разработку команд, позволяя лучше управлять библиотеками классов, созданными в проектах. Дополнительные сведения см. в статье Устранение неполадок неработающих ссылок.
Ссылка на файл вместо ссылки на проект создается, если целевая версия одного проекта платформа .NET Framework 4.5 или более поздней, а целевая версия другого проекта — платформа .NET Framework 2, 3, 3,5 или 4.0. Дополнительные сведения о .NET, платформа .NET Framework и .NET Core см. в статье «Что такое .NET ( и .NET Core)».
Чтобы отобразить сборку в диалоговом окне «Добавление ссылки»
- Переместите или скопируйте сборку в одно из следующих расположений.
- Каталог текущего проекта. (Можно найти эти сборки, используя вкладку Обзор .)
- Другие каталоги проектов в одном решении. (Можно найти эти сборки, используя вкладку Проекты.)
- [HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework\\AssemblyFoldersEx\MyAssemblies]@=»»
- [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\\AssemblyFoldersEx\MyAssemblies]@=»»
Для 64-разрядной операционной системы добавьте один из следующих разделов реестра в 32-разрядный куст реестра.
- [HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\\AssemblyFoldersEx\MyAssemblies]@=»»
- [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\\AssemblyFoldersEx\MyAssemblies]@=»»
— это минимальная допустимая версия платформы. Если — v3.0, папки, указанные в AssemblyFoldersEx, относятся к проектам, предназначенным для платформы .NET Framework 3.0 и более поздних версий.
— это каталог сборок, которые требуется отображать в диалоговом окне Добавить ссылку, например C:\MyAssemblies.
Создание раздела реестра в узле HKEY_LOCAL_MACHINE позволяет всем пользователям видеть сборки в указанном расположении в диалоговом окне Добавить ссылку. Создание раздела реестра в узле HKEY_CURRENT_USER влияет только на настройки для текущего пользователя.
Снова откройте диалоговое окно Добавление ссылки. Сборки должны отображаться на вкладке .NET . Если они нет, убедитесь, что сборки находятся в указанном каталоге AssemblyLocation , перезапустите Visual Studio и повторите попытку.
Вкладка «Проекты»
На вкладке «Проекты» перечислены все совместимые проекты в текущем решении в подзадаче решения .
Проект может ссылаться на другой проект, ориентированный на другую версию платформы. Например, можно создать проект, предназначенный для .NET 8.0, но ссылающийся на сборку, созданную для .NET 6.0. Однако проект .NET 6.0 не может ссылаться на проект платформа .NET Framework 8.0. Дополнительные сведения см. в статье Общие сведения о настройке для платформы.
Вкладка «Общие проекты»
Добавьте ссылку на общий проект на вкладке Общие проекты диалогового окна «Диспетчер ссылок». Общие проекты позволяют создавать общий код, на который ссылается множество различных проектов приложений.
Вкладка «Универсальная платформа Windows»
Вкладка Универсальная платформа Windows содержит список всех пакетов SDK, относящихся к платформам, на которых работают операционные системы Windows. На этой вкладке есть две подгруппы: Core и Extensions.
Подгруппа «Ядро»
Проекты универсального приложения для Windows по умолчанию имеют ссылку на пакет SDK универсальной платформы Windows. Соответственно, в подгруппе Ядро в диспетчере ссылок не перечисляются никакие сборки из пакета SDK универсальной платформы Windows.
Подгруппа «Расширения»
В разделе Расширения перечислены пользовательские пакеты SDK, расширяющие целевую платформу Windows.
Пакет SDK — это коллекция файлов, которая обрабатывается Visual Studio как единый компонент. На вкладке Расширения пакеты SDK, относящиеся к проекту, из которого было открыто диалоговое окно «Диспетчер ссылок», указываются как отдельные записи. При добавлении в проект все содержимое SDK используется Visual Studio таким образом, что пользователю не нужно принимать никаких дополнительных мер для добавления содержимого SDK в IntelliSense, на панель элементов, в конструкторы, обозреватель объектов, средства сборки, развертывания, отладки и упаковки.
Сведения о том, как отобразить пакет SDK на вкладке «Расширения», см. в разделе «Создание пакета средств разработки программного обеспечения».
Если проект ссылается на пакет SDK, который зависит от другого пакета SDK, Visual Studio не использует второй пакет SDK, если вы вручную не добавите ссылку на второй пакет SDK. При выборе пакета SDK на вкладке «Расширения» диалоговое окно диспетчера ссылок помогает определить зависимости пакета SDK, перечисляя все зависимости в области сведений.
Если тип проекта не поддерживает расширения, эта вкладка не отображается в диалоговом окне «Диспетчер ссылок».
Вкладка COM
Вкладка COM содержит список всех COM-компонентов, ссылки на которые можно добавить. Если необходимо добавить ссылку на зарегистрированную DLL-библиотеку COM, содержащую внутренний манифест, сначала необходимо отменить регистрацию DLL-библиотеки. В противном случае среда разработки Visual Studio добавить ссылку как элемент управления ActiveX, а не как библиотеку DLL с машинным кодом.
Если тип проекта не поддерживает COM, эта вкладка не отображается в диалоговом окне «Диспетчер ссылок».
Просмотреть
Кнопка Обзор позволяет осуществлять поиск компонента в файловой системе.
Проект может ссылаться на компонент, ориентированный на другую версию платформы. Например, можно создать приложение, которое предназначено для платформа .NET Framework 4.7.2, но ссылается на компонент, предназначенный для платформа .NET Framework 4. Дополнительные сведения см. в статье Общие сведения о настройке для платформы.
Избегайте добавления ссылок на файлы в выходные данные другого проекта в том же решении, так как эта тактика может привести к ошибкам компиляции. Вместо этого следует создавать ссылки между проектами, используя вкладку Решение диалогового окна «Диспетчер ссылок». Это позволит упростить коллективную разработку за счет более эффективного управления библиотеками классов, создаваемыми в проектах. Дополнительные сведения см. в статье Устранение неполадок неработающих ссылок.
Невозможно добавить SDK в проект с помощью кнопки «Обзор». С помощью кнопки «Обзор» можно добавить в проект только файл (например, сборку или файл WinMD).
При выполнении ссылки на файл в WinMD ожидаемый макет заключается в том, что >, FileName.dll и FileName.pri>> размещаются вместе друг с другом. Если вы ссылаетесь на WinMD в следующих сценариях, неполный набор файлов копируется в выходной каталог проекта и, следовательно, происходит сбой сборки и среды выполнения.
True Примечание. При добавлении этого свойства сборка может выполняться медленнее.
Последние
Элементы Сборки, COM, Windows и Обзор поддерживают вкладку Последние, содержащую список компонентов, которые были недавно добавлены в проекты.
Search
Панель поиска в диалоговом окне «Диспетчер ссылок» работает с текущей активной вкладкой. Например, если вы введите «System» в строке поиска, пока вкладка «Решение » находится в фокусе, поиск не возвращает результаты, если решение не состоит из имени проекта, содержащего «System».
Удаление ссылки
Вы можете удалить неиспользуемые ссылки на проекты стилей SDK в Visual Studio с помощью элемента меню «Удалить неиспользуемую ссылку «.

Дополнительные сведения см. в разделе «Удаление неиспользуемых ссылок».
Связанный контент
- Управление ссылками в проекте
- Диагностика неработающих ссылок
- Использование NuGet или пакета SDK в качестве ссылки на проект
Управление ссылками в проекте
Область применения:
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. Они создаются на вкладке Обзор диспетчера ссылок. Ссылку на файл следует использовать в случае, если имеется лишь сборка или компонент, но не проект, который создает ее в качестве выходных данных.
Связанный контент
- Диагностика неработающих ссылок
- Практическое руководство. Добавление и удаление ссылок
Практическое руководство. Добавление ссылок на библиотеки типов
При добавлении ссылки на библиотеку типов Visual Studio генерирует сборку взаимодействия, в которой содержатся метаданные. Если первичная сборка взаимодействия доступна, Visual Studio обращается к существующей сборке, прежде чем генерировать новую.
Добавление ссылки на библиотеку типов в Visual Studio
- Если файл Windows Setup.exe не осуществит установку автоматически, установите DLL- или EXE-файл COM на компьютер.
- Выберите Проект, Добавить ссылку.
- В диспетчере ссылок выберите COM.
- Выберите библиотеку типов из списка или найдите файл с расширением .TLB.
- Нажмите кнопку ОК.
- В обозревателе решений откройте контекстное меню добавленной ссылки и выберите Свойства.
- Убедитесь, что в окне Свойства свойству Внедрить типы взаимодействия присвоено значение True. Visual Studio внедрит информацию о типах COM в исполняемые файлы, устранив тем самым необходимость развертывать основные сборки взаимодействия в приложении.
Пункты меню и параметры диалогового окна зависят от используемой версии Visual Studio.
Добавление ссылки на библиотеку типов для компиляции командной строки
- Сгенерируйте сборку взаимодействия, как описано в разделе Практическое руководство. Создание сборок взаимодействия из библиотек типов.
- Для внедрения информации о типах COM в исполняемые файлы используйте параметр компилятора -link (параметры компилятора C#) или -link (Visual Basic) с именем сборки взаимодействия.
См. также
- Импорт библиотеки типов в виде сборки
- Предоставление COM-компонентов платформе .NET Framework
- Пошаговое руководство: Внедрение типов из управляемых сборок в Visual Studio
- -link (параметры компилятора C#)
- -link (Visual Basic)
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.