VSTS частный агент VSBuild

У меня есть решение с проектом службы анализа и проектом USQL. На моем компьютере установлено сообщество VS2015. Решение идеально подходит для моей машины. Затем я хочу настроить VSTS CI для своего решения. Я пробовал использовать размещенный агент, но он жалуется, что не может найти сборки, как показано ниже:

  1. # P2 #
  2. # P3 #

Я полагал, что это могло быть связано с тем, что у размещенного агента не было утилит / конфигураций для создания службы анализа и проектов usql.
Поэтому я решил использовать свою машину в качестве частного агента VSTS для сборки проектов, поскольку он все инструменты установлены и успешно строит решение из Visual Studio.
Однако даже после использования моего компьютера в качестве агента сборки он показывает ту же ошибку. Я использую VSBuild.

Итак, мой вопрос:

а. Почему VSBuild не обеспечивает хорошую сборку при запуске на частной машине, которая в противном случае может построить проект из установленного экземпляра VS2015?
Среда машины уже должна быть настроена со всеми необходимыми инструментами / библиотеками и конфигурацией, поэтому они должны не будет проблем.

б. Если вышеперечисленное не работает, то как вообще настроить частный агент для обработки случаев, которые не поддерживаются стандартным размещенным агентом?

c. Есть какие-нибудь советы по исправлению этих ошибок при использовании VSBuild?

Любая помощь будет оценена по достоинству!


person shaswata pal    schedule 21.05.2017    source источник


Ответы (2)


Пожалуйста, устраните проблему с помощью следующих шагов:

  1. Создайте свой проект в VS 2015 на локальном компьютере, чтобы убедиться, что он может быть успешно собран.
  2. Убедитесь, что вы используете частный агент, настроенный на машине для сборки VSTS. Вы можете дважды проверить, просмотрев журнал сборки, и убедиться, что локальный путь - это то место, где вы настроили свой частный агент.
  3. В задаче сборки Visual Studio убедитесь, что вы используете версию Visual Studio VS 2015.

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

person Marina Liu    schedule 22.05.2017
comment
Извините за задержку, так как я сильно застрял. Спасибо, я проверил детали, и они настроены правильно, как вы упомянули. Дело в том, что все проекты строятся нормально, кроме проекта службы аналитики и проекта usql. Поскольку я использую VSBuild вместо MSBuild в моем частном агенте, который также загружается как Visual Studio, я ожидал, что VSBuild вызовет внутреннюю сборку Visual Studio, поэтому успешная сборка в Visual Studio должна гарантировать успешную сборку с использованием VSBuild. Но это не так. Какое значение имеет VSBuild по сравнению с MSBuild? Разве при использовании VSBuild не требуется наличие Visual Studio на компьютере сборки? - person shaswata pal; 29.05.2017

Мне очень жаль, что в настоящее время usqlproj можно создать только в среде VisualStudio. Автономный MSBuild пока не поддерживается.

Прежде чем в будущем у нас будет работоспособное решение, единственный вариант здесь - использовать U-SQL SDK для непосредственного построения сценария U-SQL.

https://docs.microsoft.com/en-us/azure/data-lake-analytics/data-lake-analytics-u-sql-sdk

Большое спасибо, Юй Донг

person Yu Dong Yang    schedule 22.05.2017
comment
Спасибо за информацию. Я проверял это. Извините, я новичок в USQL, и у меня был запрос, возможно, немного наивный. Когда я создаю запрос USQL, я вижу, что код, стоящий за ним, компилируется в dll и регистрируется в локальном каталоге озера данных, установленном для среды. Что именно происходит во время этой сборки? В нашем случае мы не используем внутренний код C #, а только простой сценарий USQL в качестве процедур. Мы разработали сценарий PowerShell, который будет вызываться во время конвейера выпуска для развертывания сценария в целевом каталоге в виде процедур. В таком случае есть ли какое-либо значение для отдельного шага сборки для сценария? - person shaswata pal; 22.05.2017
comment
Код, стоящий за кодом C #, создается только тогда, когда у вас есть строка класса в коде исходного файла. Используется временная регистрация сборки, а затем ее удаление, поэтому она не должна оставлять следов в локальном хранилище метаданных при успешном выполнении задания. - person Yu Dong Yang; 23.05.2017
comment
Спасибо за ваш ответ. Извините за задержку с подтверждением, так как я был немного занят другими результатами ... Пара вопросов - а) Есть ли способ создать несколько файлов usql за один раз? Я обнаружил, что аргумент -script принимает по одному файлу за раз. б) Снова вернемся к исходному вопросу, поскольку я использую VSBuild вместо MSBuild, я ожидал, что сборка будет успешной, поскольку она будет использовать ту же среду, что и установка Visual Studio на машине для сборки. Для частных агентов VSTS разве VSBuild не использует ту же среду, что и среда Visual Studio на машине сборки? - person shaswata pal; 29.05.2017