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


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

Диалоговое окно Диспетчер ссылок позволяет добавлять ссылки на компоненты, которые разработали вы, корпорация Майкрософт или другая компания, а также управлять этими ссылками.При разработке приложения Магазин Windows проект автоматически ссылается на все пакеты SDK для Windows 8 SDK и компоненты .NET Framework.При разработке проекта другого типа необходимо вручную добавить эти ссылки в проект.

Предупреждающее замечаниеВнимание

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

Добавление и удаление ссылки

Добавление ссылки в проект C# или Visual Basic

  1. В строке меню выберите Файл, Открыть.

  2. Перейдите в решение или проект.

  3. В Обозревателе решений откройте контекстное меню узла проекта, а затем выберите команду Добавить ссылку.

  4. Укажите ссылки, которые требуется добавить, а затем нажмите кнопку ОК.

Чтобы удалить ссылку, откройте ее контекстное меню, а затем выберите пункт Удалить.

Добавление ссылки в проект C++

  1. В строке меню выберите Файл, Открыть.

  2. Перейдите в решение или проект.

  3. В Обозревателе решений откройте контекстное меню узла проекта, а затем выберите команду Ссылки.

  4. В диалоговом окне Страницы свойств нажмите кнопку Добавить новую ссылку.

  5. В диалоговом окне Добавить ссылку укажите ссылки для добавления, а затем нажмите кнопку ОК.

Чтобы удалить ссылку, откройте ее контекстное меню, а затем выберите пункт Удалить.

Будет открыт Диспетчер ссылок со списком доступных ссылок по группам.Тип проекта определяет, какая из следующих групп отображается:

  • "Сборки" с подгруппами "Платформа" и "Расширения";

  • "Решение" с подгруппой "Проекты";

  • "Windows" с подгруппами "Ядро" и "Расширения".Для просмотра ссылок в Windows SDK и пакетах SDK расширений можно использовать Обозреватель объектов;

  • обзор с подгруппой последних ссылок.

Вкладка "Сборки"

На вкладке Сборки перечислены все сборки .NET Framework, которые доступны для ссылки.Вкладка Сборки не содержит никаких сборки из глобального кэша сборок (GAC), поскольку сборки в глобальном кэше сборок являются частью среды выполнения.При развертывании или копировании приложения, содержащего ссылку на сборку, зарегистрированную в глобальном кэше сборок, сборка не будет развернута или скопирована вместе с приложением, вне зависимости от свойства "Копировать локально".Дополнительные сведения см. в разделе Управление ссылками проектов.

При добавлении вручную ссылки на любое из пространств имен EnvDTE (EnvDTE, EnvDTE80, EnvDTE90, EnvDTE90a или EnvDTE100) установите в окне свойств для свойства ссылки "Внедрить типы взаимодействия" значение False.Задание для этого свойства значения True может привести к проблемам сборки, так как некоторые свойства EnvDTE не допускают внедрение.

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

Если тип проекта не поддерживает сборки, эта вкладка не отображается в диалоговом окне Диспетчер ссылок.

Вкладка "Сборки" состоит из двух подразделов.

  1. В разделе "Платформа" перечислены все сборки, из которых состоит целевая платформа.

    • Объявленные сборки принадлежат к полной версии .NET Framework и перечисляются в списке .NET Framework, когда проект нацелен на профиль целевой версии .NET Framework.Объявленные сборки выделены серым, чтобы отличать их от сборок, существующих в целевом профиле .NET Framework проекта.Например, если проект нацелен на .NET Framework 4 Client, то в списке "Платформа" будут показаны объявленные сборки из .NET Framework 4.Когда пользователь добавляет объявленную сборку, пользователь получает уведомление о том, что после закрытия диалогового окна Диспетчер ссылок проект будет перенацелен на .NET Framework 4 и объявленная сборка будет добавлена.

    • Проекты приложений Магазин Windows по умолчанию содержат ссылки на все сборки в целевом профиле Приложения .NET для Магазина Windows при создании проекта.В управляемых проектах доступный только для чтения узел в папке "Ссылки" в Обозревателе решений содержит ссылку на всю платформу .NET Framework.Соответственно, на вкладке "Платформа" не будут указаны никакие сборки из .NET Framework, а вместо них будет отображаться следующее сообщение: "Ссылки на все сборки .NET Framework уже заданы.С помощью обозревателя объектов рассмотрите ссылки в .NET Framework." Для проектов классических приложений на вкладке "Платформа" перечислены сборки из целевой версии .NET Framework, и пользователь должен добавить ссылки, которые требуются приложению.

  2. В разделе "Расширения" перечислены все сборки, разработанные внешними поставщиками компонентов и элементов управления для расширения целевой версии .NET Framework.В зависимости от назначения пользовательского приложения эти сборки могут понадобиться ему.

    • Список расширений состоит из сборок, зарегистрированных в следующих местах:

      32-bit machine:
      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]
      64-bit machine:
      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]
      And older versions of the [Target Framework Identifier]
      

      Например, если проект нацелен на .NET Framework 4 на 32-разрядных компьютерах, в списке "Расширения" будут указаны сборки, зарегистрированные в \Microsoft\.NETFramework\v4.0\AssemblyFoldersEx\, \Microsoft\.NETFramework\v3.5\AssemblyFoldersEx\, \Microsoft\.NETFramework\v3.0\AssemblyFoldersEx\ и \Microsoft\.NETFramework\v2.0\AssemblyFoldersEx\.

Вкладка COM

Вкладка COM содержит список всех COM-компонентов, ссылки на которые можно добавить.Если необходимо добавить ссылку на зарегистрированную DLL-библиотеку COM, содержащую внутренний манифест, сначала необходимо отменить регистрацию DLL-библиотеки.В противном случае среда разработки Visual Studio добавить ссылку как элемент управления ActiveX, а не как библиотеку DLL с машинным кодом.

Если тип проекта не поддерживает COM, эта вкладка не отображается в диалоговом окне Диспетчер ссылок.

Вкладка "Решение"

На вкладке "Решение" указываются все совместимые проекты в текущем решении (в подразделе "Проекты").

Проект может ссылаться на другой проект, предназначенный для другой версии .NET Framework.Например, можно создать проект, который нацелен на .NET Framework 4, но ссылается на сборку, собранную для .NET Framework 2.Однако проект .NET Framework 2 не может ссылаться на проект .NET Framework 4.Дополнительные сведения см. в разделе Указание конкретной версии или профиля платформы .NET Framework.

Проект, нацеленный на .NET Framework 4, несовместим с проектом, нацеленным на .NET Framework 4 (клиентский профиль).

В Visual Studio 2012 создается ссылка на файл вместо ссылки на проект, если один проект нацелен на .NET Framework 4, а второй проект — на более раннюю версию .NET Framework.

В проект, нацеленный на Приложения .NET для Магазина Windows, нельзя добавить ссылку на проект, нацеленный на .NET Framework более ранней версии и наоборот.

Вкладка "Окна"

Вкладка "Windows" содержит список всех пакетов SDK, относящихся к платформам, на которых работают операционные системы Windows.

Файл WinMD можно создать в Visual Studio одним из двух способов.

  • Управляемые проекты приложений Магазин Windows: проекты приложений Магазин Windows, которые могут выводить бинарные файлы WinMD в случае настройки в свойствах проекта значения "Тип выходных данных = файл WinMD".Имя файла WinMD должно быть пространством имен надмножества всех пространств имен в нем.Например, если проект состоит из пространств имен A.B и A.B.C, возможные имена для выходные файлов WinMD — A.winmd и A.B.winmd.Если пользователь вводит в свойствах проекта значение имени сборки или пространства имен, которое не принадлежит к набору пространств имен проекта или не является их надмножеством, появляется предупреждение сборки: "'A.winmd' не является допустимым именем файла .winmd для этой сборки.Все типы в файле метаданных Windows должны находиться во вложенном пространстве имен имени файла.Типы, которые отсутствуют во вложенном пространстве имен имени файла, не будут обнаруживаться во время выполнения.В этой сборке наименьшим общим пространством имен является 'CSWSClassLibrary1'.Проекты классических приложений Visual Basic или Visual C# могут использовать только файлы WinMD, созданные с помощью пакетов SDK для Windows 8, называемые основными WinMD; эти проекты не могут создавать файлы WinMD.

  • Проекты приложений Магазин Windows на базе машинного кода. Файл WinMD на базе машинного кода состоит только из метаданных.Его реализация находится в отдельном файле DLL.Двоичные файлы на базе машинного кода можно создать, выбрав шаблон проекта "Компонент среды выполнения Windows" в диалоговом окне Создать проект или создав пустой проект и изменив его свойства, чтобы создать файл WinMD.Если проект состоит из несвязанных пространств имен, возникает ошибка сборки, сообщающая пользователю о необходимости совместить пространства имен или запустить средство MSMerge.

Вкладка "Windows" состоит из двух подгрупп.

Подгруппа "Ядро"

В подгруппе "Ядро" указаны все файлы WinMD (для элементов среды выполнения Windows) в SDK целевой версии Windows.

Проекты приложений Магазин Windows по умолчанию содержат ссылки на все файлы WinMD в пакете SDK Windows 8 при создании проекта.В управляемых проектах доступный только для чтения узел в папке "Ссылки" в Обозревателе решений содержит ссылку на весь пакет SDK Windows 8.Соответственно, в подгруппе "Ядро" в диспетчере ссылок не указываются никакие сборки из пакета SDK Windows 8, а вместо них отображается сообщение: "Ссылки на Windows SDK уже заданы.С помощью обозревателя объектов рассмотрите ссылки в Windows SDK".

В проектах классических приложений подгруппа "Ядро" по умолчанию не отображается.Среду выполнения Windows можно добавить, открыв контекстное меню узла проекта, выбрав команду Выгрузить проект, добавив следующий фрагмент и повторно открыв проект (на узле проекта выберите команду Перезагрузить проект).При вызове диалогового окна Диспетчер ссылок появится подгруппа "Ядро".

  <PropertyGroup>
    <TargetPlatformVersion>8.0</TargetPlatformVersion>
  </PropertyGroup>

Убедитесь, что в этой подгруппе установлен флажок Windows.После этого должна появиться возможность использования элементов среды выполнения Windows.Однако также может потребоваться добавить пространство имен System.Runtime, в котором среда выполнения Windows определяет некоторые стандартные классы и интерфейсы, такие как IEnumerable, которые используются в библиотеках среды выполнения Windows.Сведения о добавлении System.Runtime см. в разделе Управляемые классические приложения и среда выполнения Windows.

Подгруппа "Расширения"

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

Пакет SDK — это коллекция файлов, которая обрабатывается Visual Studio как единый компонент.На вкладке "Расширения" пакеты SDK, относящиеся к проекту, из которого было открыто диалоговое окно Диспетчер ссылок, указываются как отдельные записи.При добавлении в проект все содержимое SDK используется Visual Studio таким образом, что пользователю не нужно принимать никаких дополнительных мер для добавления содержимого SDK в IntelliSense, на панель элементов, в конструкторы. обозреватель объектов, средства сборки, развертывания, отладки и упаковки.Дополнительные сведения об отображении SDK на вкладке "Расширения" см. в разделе Практическое руководство. Создание пакета средств разработки программного обеспечения.

ПримечаниеПримечание

Если проект ссылается на пакет SDK, зависящий от другого пакета SDK, Visual Studio не будет использовать второй пакет SDK, если пользователь вручную не задаст ссылку на него.Когда пользователь выбирает пакет SDK на вкладке Расширения, открывается диалоговое окно Диспетчер ссылок, которое помогает пользователю определить зависимости SDK, поскольку в нем указаны не только имена и версии SDK, но и имена всех зависимостей SDK (в области сведений).Если пользователь не заметит зависимости и добавит только сам пакет SDK, MSBuild предложит пользователю добавить зависимости.

Если тип проекта не поддерживает Расширения, эта вкладка не отображается в диалоговом окне Диспетчер ссылок.

Кнопка "Обзор"

Кнопка Обзор позволяет осуществлять поиск компонента в файловой системе.

Проект может ссылаться на компонент, нацеленный на другую версию .NET Framework.Например, можно создать приложение, нацеленное на .NET Framework 4 (клиентский профиль), ссылающееся на компонент, который нацелен на .NET Framework 2.Дополнительные сведения см. в разделе Указание конкретной версии или профиля платформы .NET Framework.

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

Невозможно добавить SDK в проект с помощью кнопки "Обзор".С помощью кнопки "Обзор" можно добавить в проект только файл (например, сборку или файл WinMD).

При указании ссылки на файл WinMD предполагается, что файлы FileName.winmd, FileName.dll и FileName.pri находятся рядом.При указании ссылки на файл WinMD в следующих сценариях неполный набор файлов копируется в выходной каталог проекта и, следовательно, происходят сбои сборки и выполнения.

  • Компонент на базе машинного кода. Проект на базе машинного кода создает по одному файлу WinMD для каждого несвязанного с другими набора пространств имен и по одному файлу DLL с реализацией.Файлы WinMD будут иметь разнородные имена.При указании ссылки на такой файл компонента на базе машинного кода MSBuild не определит, что файлы WinMD с разнородными именами относятся к одному компоненту.Следовательно, будут скопированы только файлы FileName.dll и FileName.winmd с одинаковыми именами, и возникнет ошибка времени выполнения.Чтобы обойти эту проблему, нужно создать пакет SDK расширения.Дополнительные сведения см. в разделе Практическое руководство. Создание пакета средств разработки программного обеспечения.

  • Использование элементов управления. Элемент управления XAML состоит из как минимум следующих файлов: FileName.winmd, FileName.dll, FileName.pri, XamlName.xaml и ImageName.jpg.Когда проект будет собран, файлы ресурсов, связанные со ссылкой на файл, не будут скопированы в выходной каталог проекта, а будут скопированы только файлы FileName.winmd, FileName.dll и FileName.pri.При этом в журнал будет занесена ошибка сборки, указывающая пользователю на отсутствующие ресурсы XamlName.xaml и ImageName.jpg.Чтобы сборка прошла успешно, пользователь должен вручную скопировать эти файлы ресурсов в выходную папку проекта для сборки и отладки (выполнения).Для решения этой проблемы создайте пакет SDK расширения, следуя инструкциям раздела Практическое руководство. Создание пакета средств разработки программного обеспечения, или измените файл проекта, добавив в него следующее свойство.

    <PropertyGroup>
    <GenerateLibraryOutput>True</GenerateLibraryOutput>
    </PropertyGroup>
    
    ПримечаниеПримечание

    При добавлении этого свойства сборка может выполняться медленнее.

Recent

Элементы "Сборки", "COM", "Windows" и "Обзор" поддерживают вкладку вкладку "Последние", которая содержит список компонентов, которые были недавно добавлены в проекты.

Поиск

Панель поиска в диалоговом окне Диспетчер ссылок работает с текущей активной вкладкой.Например, если пользователь вводит в области поиска запрос "System", когда открыта вкладка Решение, поиск не вернет результаты, если решение не содержит проекта, в имени которого есть слово "System".

См. также

Задачи

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

Основные понятия

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