it-swarm.com.ru

Как я могу скопировать сборку Visual Studio Team Service в новый проект?

Я перемещаю определенный набор сборок из существующего проекта Visual Studio Team Service в новый. К сожалению, я не могу найти способ переноса определений сборки из одного проекта в другой. Кажется, что нет функции импорта/экспорта или другого механизма.

Есть ли способ переместить их, не воссоздавая вручную сборки в новом проекте?

17
jlo

Теперь это доступно в веб-интерфейсе VSTS Build Definitions:

VSTS Export and clone,.

14
marv

В Visual Studio Marketplace есть расширение Export/Import Build Definition , которое вы можете использовать сейчас.

13
Eddie Chen - MSFT

Нет способа скопировать или синхронизировать шаблон определения сборки vnext между командными проектами. Шаблон определения сборки предназначен только для данного командного проекта. Поэтому вам нужно создать шаблон определения сборки для каждого командного проекта.

А также был запрос на функцию UserVoice, вы можете голосовать и отслеживать его

VSO build vnext: делиться шаблонами сборки между проектамиhttps://visualstudio.uservoice.com/forums/330519-team-services/suggestions/8468566-vso-build-vnext-share-build-templates-between-pro

Тем не менее, это может быть достигнуто с помощью API. Вот простой инструмент вы можете использовать. (Нужно быть в одной коллекции командных проектов.)

3
PatrickLu-MSFT

Вы можете сделать что-то вроде следующего:

$project1Url = "http://tfs:8080/tfs/collection/project1/_apis/build/definitions/$($buildId)?api-version=2.0"
$obj = Invoke-RestMethod -Uri $project1Url -Method Get -ContentType "application/json" -UseDefaultCredentials

$obj.project = $null

#TODO: Update all repository/source control info, too.

$json = ConvertTo-Json $obj -Depth 3

$project2Url = "http://tfs:8080/tfs/collection/project2/_apis/build/definitions/?api-version=2.0"
Invoke-RestMethod -Uri $url -Method Post -Body $json -ContentType "application/json" -UseDefaultCredentials

Суть в следующем: получить существующее определение из исходного проекта (projec1), очистить связи проекта, при необходимости установить новую информацию о хранилище и отправить новое определение в виде POST (CREATE) в целевой проект (project2).

3
Codingrunr

Вы можете использовать API REST для этого. Существует пример, показанный здесь .

В нем показано, как получить ответ JSON для определения сборки и снова использовать ту же ссылку, чтобы создать новую в проекте, который вы хотите.

1
Dhruv Patel

В

  1. При экспорте исходного проекта (через ...) каждое определение сборки

  2. В проекте Destination в представлении папок для определений сборки выберите New-> Import one и настройте: Пул агентов Репозиторий Путь (будет рассмотрен позже при сохранении импорта)

  3. Экспорт успешно импортированного определения сборки

  4. Отредактируйте оставшиеся извлеченные определения сборки и замените (значениями из этого первого успешного импортированного определения сборки) значения для пула агентов, репозитория и пути
  5. Импортируйте оставшиеся сборкиReview name (удалите суффикс -import) Просмотрите пул агентов Просмотрите путь в представлении папки проекта Destination при сохранении импортированной сборки.
0
SCDomingos