Что такое ссылка на проект в Visual Studio

#c #visual-studio #visual-studio-2017

#c #visual-studio #visual-studio-2017

Вопрос:

существует возможность добавить существующий проект в качестве «ссылки» на решение в VS (теперь поговорим о C ). Насколько я понимаю, это означает, что все файлы проекта будут добавлены в решение, и я могу изменять любые свойства и исходный код, и это повлияет на исходное решение, к которому принадлежит этот проект. Правильно ли я это понимаю? Или это что-то еще? Я действительно не понимаю, зачем нам это нужно, если мне нужен другой проект, я могу использовать его как библиотеку или DLL-файл, эта ссылка, похоже, усложняет ситуацию — если я внесу какие-либо изменения в свойства проекта, мне нужно подумать, как это повлияет на создание другого решения, к которому принадлежит этот проект.

Комментарии:

1. Однажды мне пришлось работать с проектом, в котором использовались ссылки, и это был кошмар. Я бы избегал этого, поскольку не вижу никаких преимуществ, но с этим много проблем. Просто мое мнение.

2. @Devolus это не мой выбор: (В настоящее время я спрашиваю, правильно ли я понимаю, что произошло — у меня есть один проект с одинаковыми файлами, которые созданы с одинаковыми свойствами в двух разных решениях. И ищу кого-нибудь, кто может подтвердить, что мое понимание правильное, или говорит мне, где я ошибаюсь и как это работает на самом деле.

3. Используется для выполнения порядка сборки. Ссылочный проект создается до того, как проект ссылается на него. например, если вам нужно использовать проект статической библиотеки из основного проекта приложения, вы создаете ссылку на проект статической библиотеки, чтобы он был создан до основного проекта. Если вы этого не сделали, основной проект может быть связан со старой статической библиотекой.

4. @RichardCritten, вы также можете настроить это с помощью зависимостей сборки.

Ответ №1:

В Visual C ссылки «от проекта к проекту» в решении действительно выполняют две вещи:

  • Если проект, на который ссылается ссылка, является статической библиотекой или библиотекой DLL, он неявно включается в инструкцию ссылки вашего ссылающегося проекта.
  • Проект, на который ссылается ссылка, считается зависимостью от сборки для ссылающегося проекта, поэтому он будет создан первым.

Это в значительной степени так. Если вы хотите включить заголовки в проект, на который ссылается ссылка, вам необходимо добавить его в свое AdditionalIncludes свойство для ссылающегося проекта.

Для проекта DLL вы можете установить для него свойство, чтобы скопировать его DLL в каталог сборки вашего ссылочного проекта.

См. Блог Visual C Team, который был еще в VS 2010, когда он был впервые представлен.

Существует другая модель совместного использования кода, называемая Shared Projects, в которой общий код встроен в каждый ссылающийся проект, т. Е. Нет общих двоичных файлов.

Комментарии:

1. И какие преимущества это дает по сравнению с использованием статических библиотек?

2. Это просто способ организовать ваши статические или динамические библиотеки в более крупном решении.