Между Powershell 5.1, сборкой 17134 (Windows Версии 1803) и Powershell версии 5.1, сборкой 17763 (Windows Версии 1809) кое-что изменилось в том, как Powershell обрабатывает ошибки от собственных команд, и я пытаюсь понять, что изменилось.
У меня есть скрипт powershell, работающий в конвейере Azure на локальных компьютерах с Windows.Этот сценарий содержит команду git checkout origin/master
.
Начиная с версии Windows 1809, это начало сбой.Я получил бы следующую ошибку:
##[error]git : HEAD is now at b1e379d
##[error]At line:1 char:1
+ git checkout origin/master
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (HEAD is now at b1e379d) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
##[error]PowerShell exited with code '1'.code
Здесь происходит то, что сообщение HEAD is now at b1e379d
отправляется в STDERR, и это вызывает NativeCommandError.Это достаточно легко обойти.Мне просто нужно позвонить git checkout origin/master --quiet
.
Но что я действительно хотел бы понять, так это то, что изменилось.Почему он не потерпел неудачу раньше, и почему он терпит неудачу сейчас?Каковы другие последствия этого изменения?