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

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

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

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

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

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

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

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


person Farzad J    schedule 17.11.2016    source источник
comment
Вы можете получить дополнительные файлы в другом репозитории, вызвав команду Git во время сборки. Вы можете проверить мой ответ.   -  person starian chen-MSFT    schedule 21.11.2016


Ответы (1)


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

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

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

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

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

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

Шаги:

  1. Создайте новое определение сборки для проекта/решения classlibrary.
  2. Добавьте шаг сборки PowerShell для вызова REST API сборки для постановки в очередь сборки вашего веб-сайта (проверьте эта статья для кода)
  3. Проверьте непрерывную интеграцию (CI) и установите фильтры ветвей на вкладке «Триггеры» этого определения сборки.

2. если кто-то вносит какие-либо изменения в одно из решений для веб-сайтов (например, веб-сайтSolution1), то сначала мы создаем «командные проекты» каждой библиотеки классов (например, 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 для создания проекта/решения веб-сайта
person starian chen-MSFT    schedule 18.11.2016
comment
Как MSSoft может пропустить эту часть. Очень важно создавать из нескольких репозиториев, и они просто не поддерживают это. Дикий. - person SpoiledTechie.com; 09.03.2017