Возможно ли, чтобы решение VS зависело от (включая включение) целого другого решения? Я видел кое-что о "Пакетах решений", но это, похоже, не то же самое...? Благодарю! (BTW, я использую VS 2008)
Visual Studio: как сделать одно решение зависимым от другого?
Ответ 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 ) зависит от ссылок, которые он ссылается. Если ваше решение зависит от других сборок, обратитесь к ним. Вы можете добавлять проекты в свое решение (Файл > Добавить > Существующий проект), а затем вы можете добавить эти проекты из проекта вывода.