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

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

  • Ссылки приложений для Магазина Windows

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

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

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

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

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

Ссылки приложений для Магазина Windows

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

Проекты Магазина Windows, ориентированные на Windows 8, не могут зависеть от проектов Магазина Windows или двоичных файлов, ориентированных на Windows 8,1.

Если любой из проектов в вашем приложении нацелен на Windows 8,1 и приложение состоит из проекта Магазина Windows C++, необходимо выполнить следующие действия.

  1. Перенацельте все проекты в приложении на Windows 8,1.Щелкните правой кнопкой мыши на каждом проекте в приложении и выберите команду Изменить целевую платформу на Windows 8.1, а затем нажмите ОК в диалоговом окне Анализ изменений проекта и решения.

  2. Щелкните правой кнопкой мыши на каждом проекте Visual Basic, Visual C# и JavaScript, который зависит от проекта C++ для Магазина Windows, выберите Добавить ссылку, перейдите на вкладку Окна, затем на вложенную вкладку Расширения, снимите флажок Microsoft Visual C++ Runtime Package v11.0 и установите флажок Microsoft Visual C++ Runtime Package v12.0, затем нажмите ОК.

Проекты Магазина Windows на Visual Basic, C# и JavaScript, нацеленные на Windows 8,1, могут ссылаться на проекты Магазина Windows на Visual Basic и C#, нацеленные на Windows 8, при условии, что эти проекты не используют API, которые стали нерекомендуемыми в Windows 8,1.См. раздел Перенос приложений из Windows 8 в Windows 8.1 Preview, чтобы узнать, продолжат ли проекты Магазина Windows, нацеленные на Windows 8, вести себя ожидаемым образом, если ссылаться на них из проекта Windows 8,1.

Ссылки SDK расширения

Проекты Магазина Windows на Visual Basic, C# и JavaScript, нацеленные на Windows 8,1, не могут ссылаться на пакеты SDK расширений, которые зависят от пакета среды выполнения Microsoft Visual C++ v11.0, поскольку это приведет к проблемам во время выполнения.Можно узнать, зависит ли пакет SDK для расширений от пакета среды выполнения Microsoft Visual C++ версии 11.0, создав новый проект Магазина Windows на языке C#, щелкнув правой кнопкой мыши проект и выбрав Добавить ссылку. Затем нужно перейти на вкладку Окна, Расширения, выбрать пакет SDK для расширений и посмотреть, указано ли Microsoft.VCLibs, версия = 11.0 в разделе Диспетчер ссылок как зависимость.

Проекты Магазина Windows на Visual Basic, C# и JavaScript, нацеленные на Windows 8,1, могут ссылаться на пакеты SDK расширений, которые не зависят от пакета среды выполнения Microsoft Visual C++ v11.0, при условии, что эти пакеты SDK расширений не используют API, которые стали нерекомендуемыми в Windows 8,1.Рекомендуется обратиться к сайту поставщика SDK расширения, чтобы узнать, можно ли ссылаться на него из проектов Магазина Windows, нацеленных на Windows 8,1.

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

  1. Посмотрите на имя проекта, являющегося источником данной ошибки.Платформа, на которую нацелен проект, указана в скобках рядом с именем проекта.Например, Имя_моего_проекта (Windows 8.1) означает, что проект имя_моего_проекта нацелен на версию платформы Windows 8,1.

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

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

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

    Важное примечаниеВажно

    Если проект нацелен на Windows 8,1 и SDK расширения, установленный на предыдущем этапе, имеет зависимость от пакета среды выполнения Microsoft Visual C++, версия пакета среды выполнения Microsoft Visual C++, которая совместима с Windows 8.1 — v12.0 и устанавливается с Visual Studio 2013.

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

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

  5. Щелкните правой кнопкой мыши на проекте, который вызвал ошибку, и выберите Добавить ссылку (в случае проектов Visual Basic, C# или JavaScript) либо Ссылки (в случае проектов C++).Для проектов C++, нажмите кнопку Добавить новую ссылку.

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

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

Чтобы добавить одну или несколько ссылок во время разработки, необходимо использовать или диалоговое окно Диспетчер ссылок, или диалоговое окно Добавить ссылку, в зависимости от типа разрабатываемого проекта.Используется диалоговое окно диспетчера ссылки для всех приложений Магазин Windows и большинства других типов проектов.Для получения дополнительной информации см. Практическое руководство. Добавление и удаление ссылок с помощью диспетчера ссылок.Несколько других типов проектов поддерживают диалоговое окно Добавить ссылку.Для получения дополнительной информации см. Практическое руководство. Добавление и удаление ссылок с помощью диалогового окна "Добавление ссылок".

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

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

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

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

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

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

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

Все проекты в Visual Studio содержат неявную ссылку на 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, что невозможно.В случае этого конфликта будет отображено сообщение следующего типа: Предупреждение. Невозможно скопировать зависимость <файл> из проекта <проект> в каталог выполнения, поскольку она перезапишет ссылку <файл>..

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

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

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

Веб-ссылки

Можно также добавить веб-ссылки с помощью диалогового окна Добавить веб-ссылку.Для получения дополнительной информации см. How to: Add and Remove Web References.

См. также

Задачи

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

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

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

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

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

Referencing Namespaces and Components

Managing References

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