Подтвердить что ты не робот

Visual Studio: как сделать одно решение зависимым от другого?

Возможно ли, чтобы решение VS зависело от (включая включение) целого другого решения? Я видел кое-что о "Пакетах решений", но это, похоже, не то же самое...? Благодарю! (BTW, я использую VS 2008)

4b9b3361

Ответ 1

Не совсем. Вам нужно будет выполнить одно из следующих действий:

  • Создайте конструкцию script, которая построит решения в правильном порядке.
  • Предварительно построить решение A и ссылаться только на встроенные двоичные выходы из него в решении B.
  • Сделайте третье решение, содержащее все проекты из обоих решений.

Первые два элемента являются наиболее распространенными, где я лично предпочитаю второй.

Ответ 2

Это сообщение устарело, но в наши дни вы можете легко повторно использовать зависимости в других решениях, создавая пакеты nuget для всех них. VS 2015 имеет встроенное здание пакета nuget, но в настоящее время является кандидатом на выпуск. В Visual Studio 2013 вы можете использовать пакет Nuget.Packaging nuget, чтобы ваш проект мог быть создан как пакет Nuget.

Затем вы можете просто публиковать новые версии своих пакетов в общий сетевой ресурс и настраивать его как репозиторий в Visual Studio.

Тогда ваши другие проекты решений могут зависеть от этого пакета.

Например, скажем, что у вас есть многократно используемая DLL-утилита в решении, называемом "Core Framework", и вы хотите использовать утилиту там на веб-сайте, который вы создаете в решении под названием "XYZEcosystem".

В решении CoreFramework вы создадите пакет nuget для проекта Utility, который компилируется в DLL-утилиту и включает в себя DLL и файл pdb в пакете.

Затем вы публикуете это в своей сетевой папке.

Итак, пусть ваш пакет имеет идентификатор типа "XYZ.Core.Utilities" с версией 1.0.0.0.

Теперь в XYZEcosystem вы будете использовать консоль диспетчера пакетов, установите репозиторий в свой репозиторий и введите "Install-Package XYZ.Core.Utilities", и он установит последнюю версию XYZ.Core.Utilities.

Если вы внесете изменения в XYZ.Core.Utilities, вы можете запустить Update-Package XYZ.Core.Utilities на XYZEcosystem, и он подберет новую версию.

Ответ 3

Взгляните сюда: http://blogs.msdn.com/b/habibh/archive/2009/06/24/walkthrough-adding-an-existing-visual-studio-solution-to-another-solution.aspx

Фактически описанный метод добавляет все проекты из другого решения в текущее решение, а не то, что мы хотим, но по крайней мере это экономит время, добавляя все проекты вручную по одному.

Ответ 4

Вы не можете этого сделать. И почему вы хотите?

Просто добавьте все проекты, от которых вы зависите (проекты в "другом" решении).

Затем используйте проектные ссылки (а не ссылки на файлы) между проектами.

Ответ 5

Решение представляет собой сборку сборок, которые создаются для создания своего рода исполняемого файла или dll. Наличие одного решения зависит от другого, не имеет смысла. Выходная сборка (исполняемый файл /dll ) зависит от ссылок, которые он ссылается. Если ваше решение зависит от других сборок, обратитесь к ним. Вы можете добавлять проекты в свое решение (Файл > Добавить > Существующий проект), а затем вы можете добавить эти проекты из проекта вывода.