Как создать определение сборки в "Visual Studio Team Services", использующее исходные коды из нескольких "Team Projects"?

Мне нравится использовать VSTS ("визуальный сервис команды студии"), но у меня есть большая проблема.

По сути, у меня есть несколько решений для библиотек классов (например, ClassLibrary1, ClassLibrary2), которые я использую в качестве ссылки в других своих проектах (например, websiteSolution1, websiteSolution2, websiteSolution3.)

Конечно, мне нравится иметь отдельное git-репо (командный проект в VSTS) для каждого решения, скажем, "групповые проекты" имеют то же имя, что и решение, которое они содержат.

Теперь мне нравится создавать некоторые определения сборки с помощью следующих правил:

  1. если кто-то фиксирует какое-либо изменение в одном из "групповых проектов" библиотеки классов (например, ClassLibrary1), то сначала мы создаем это решение classLibrary и используем результат (файл DLL), чтобы передать его в решения для веб-сайтов (например, websiteSolution1, websiteSolution2, websiteSolution3.) и наконец, создать веб-решения (которые находятся в другом командном проекте, но с одной учетной записью)

  2. если кто-то фиксирует какое-либо изменение в одном из решений для веб-сайтов (например, websiteSolution1), то сначала мы создаем каждую библиотеку "командных проектов" классов (например, ClassLibrary1, ClassLibrary2) и используем результат (файл DLL) для передачи его в решения веб-сайтов, которые имеют фиксацию (например websiteSolution1,) и, наконец, создайте веб-решение (которое находится в другом командном проекте, но с одним и тем же аккаунтом)

Проблема: когда я создаю новое "определение сборки", я вижу только коды в том же командном проекте, который содержит определение сборки.

1 ответ

Несколько репозиториев для VSTS git build не поддерживаются. (Мы можем отобразить несколько источников, если мы используем TFVC)

Есть связанный голос пользователя, что вы можете проголосовать за него.

Обходной путь:

Вы можете получить дополнительные файлы в другом хранилище с помощью команды git (шаг построения командной строки, и вам нужно установить флажок Разрешить сценариям доступ к OAuth-токену в теге Option в определении сборки).

введите описание изображения здесь

1. если кто-то фиксирует какое-либо изменение в одном из "групповых проектов" библиотеки классов (например, ClassLibrary1), то сначала мы создаем это решение classLibrary и используем результат (файл DLL), чтобы подать его в решения для веб-сайтов (например, websiteSolution1, websiteSolution2, websiteSolution3).) и, наконец, создать веб-решения (которые находятся в другом командном проекте, но с одним аккаунтом)

шаги:

  1. Создайте новое определение сборки для библиотечного проекта / решения.
  2. Добавьте шаг сборки PowerShell, чтобы вызвать REST API сборки, чтобы поставить в очередь сборку вашего веб-сайта (см. Код в этой статье)
  3. Установите флажок "Непрерывная интеграция" (CI) и установите фильтры ветвей на вкладке "Триггеры" этого определения сборки.

2. если кто-то фиксирует какое-либо изменение в одном из решений для веб-сайтов (например, websiteSolution1), то сначала мы создаем каждую библиотеку "групповых проектов" (например, ClassLibrary1, ClassLibrary2) и используем результат (файл DLL) для подачи его в решения для веб-сайтов, которые имеют зафиксировать (например, websiteSolution1,) и, наконец, создать веб-решение (которое находится в другом командном проекте, но с одним и тем же аккаунтом)

шаги:

  1. Создайте определение сборки для решения WebSites.
  2. Добавьте шаг сборки командной строки в команду "Запустить git", чтобы получить файлы библиотек классов в другом хранилище (см. Предыдущий снимок экрана)
  3. Добавьте шаг Visual Studio Build для создания библиотечного проекта / решения.
  4. Добавьте шаг "Копировать файлы", чтобы скопировать файл результатов сборки (например, файлы.dll) в нужную папку по соответствующему пути ссылки на classlibray проекта веб-сайта. Вы можете проверить это в файле проекта,

например:

<Reference Include="ClassLibraryB">
      <HintPath>..\..\MSBuildDemoSolution1\ClassLibrary1\Lib\ClassLibraryB.dll</HintPath>
    </Reference>
  1. Добавьте шаг Visual Studio Build для создания проекта / решения веб-сайта.
Другие вопросы по тегам