Медленный запуск MSBuild из скрипта PowerShell (Visual Studio 2019) - PullRequest
0 голосов
/ 20 января 2020

Я недавно установил новый TFS Build Server и исследую некоторые длительные периоды времени в процессе сборки. Одним из таких периодов является перекомпиляция нашего теста Selenium .dll. Во-первых, пакеты восстанавливаются через MSBuild, что нормально. Затем сценарий зависает примерно на 10 минут, в то время как .dll фактически компилируется.

На нашем сервере сборки Visual Studio 2017 это работало нормально (сборка, я полагаю, заняла несколько секунд), но кажется проблематичной c с 2019.

Вот код. Мне не хватает параметра MSBuild или двух?

$msbuild = """C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\MSBuild.exe"""

# Rebuild the Test source .dll...
Write-Host "********** Running UI Tests **********"

# Restore Selenium packages...
Write-Host "********** Restoring Selenium Packages **********"
&"C:\Nuget.exe\Nuget.exe" restore  $source\Development\12.0\Web\MyAppWeb\MyCo.SeleniumUITest\MyCo.SeleniumUITest.sln -DisableParallelProcessing
Write-Host "********** Selenium Packages Restored **********"

# Changes for new MSBuild....
$projfile = "$source\Development\12.0\Web\MyAppWeb\MyCo.SeleniumUITest\MyCo.SeleniumUITest.sln"

try
{
    start-process $msbuild -ArgumentList @($projfile,'/t:Rebuild','/p:configuration=Release') -Wait
    Write-Host "********** Selenium .dll compiled successfully! **********"
}
catch
{
    Write-Host $_.Exception.Message
    exit 1
}

Любая помощь приветствуется! Если это будет go на форуме PowerShell, дайте мне знать. Я думал, что TFS / MSBuild будет правильным местом, так как я надеюсь, что это просто параметр или твик вызова.

Ответы [ 2 ]

0 голосов
/ 21 января 2020

Я переместил задачи MSBuild со сценариями в задачи Построения определений, чтобы устранить медлительность. Я не определил причину зависания при вызове MSBuild с помощью сценария PowerShell.

Более поздняя проблема попытки опубликовать sh с помощью файла .proj была решена, когда я заметил, что использую Visual Build задача вместо более подходящей задачи MSBuild.

При использовании шага MSBuild следует обратить внимание на одну вещь. Если вы указываете на файл .proj и компилируете для Any CPU, установите его в Задаче как AnyCPU без пробела между ними.

0 голосов
/ 20 января 2020

MSBuild Работает медленно, вызывается из скрипта PowerShell (Visual Studio 2019)

Состояние:

(трудно дать точный ответ на этот вопрос операционной эффективности. Есть много причин этой проблемы, большинство из которых связаны с окружающей средой, что затрудняет нам ее воспроизведение. Поэтому мы не могли дать прямой правильный ответ на этот вопрос, мы может только дать вам некоторые неполадки. Чтобы не потерять контакт в комментариях туда-обратно, я выкладываю эти неполадки как ответ вместо комментариев.)

Во-первых, используйте сценарий с Azure devops службы вместо TFS Build Server 2019, чтобы проверить, возникла ли эта проблема в службе Azure devops, если эта проблема также возникла в службе Azure devops, то есть эта проблема не должна быть связана с TFS, более к сценариям MSBuild / environment / powershell.

Во-вторых, используйте встроенную задачу для восстановления nuget и msbuild ta. sk вместо сценариев powershell, чтобы проверить, если у вас есть эта проблема, если также есть эта проблема, эта проблема не должна относиться к сценариям. Если нет, то эта проблема должна быть связана со скриптами. Нам нужно проверить, нужно ли обновлять эти сценарии, поскольку мы используем другой сервер TFS.

В-третьих, проверьте версию powershell в Visual Studio 2017 Build Server и Visual Studio 2019 Build Server, убедитесь, что они используют один и тот же версия.

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

Надеюсь, что это помогает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...