Wiele Visual Studio Online (VSO) build tasks użycie Write-Verbose dla celów debugowania, jak widać na this example, ale jak można włączyć Write-Verbose na tak że oświadczenia debugowania pojawiają się w dziennikach wyjściowych?Jak wyświetlić zadanie kompilacji Visual Studio Online?
Odpowiedz
Aby wyciągnąć szczegółowe i debugujące instrukcje do wyświetlenia w dzienniku, wystarczy dodać zmienną System.Debug do zmiennych w definicji.
Dziękuję. Dodanie zmiennej o nazwie "system.debug" i wartości "true" do moich zmiennych kompilacji działało i mogę teraz zobaczyć instrukcje Write-Verbose ze skryptów zadań PowerShell. –
(Tylko przesuwając komentarzy do odpowiedzi)
Ponieważ skrypt params, ale nie ma CmdletBinding
, ani o [Parameter(...)]
następnie -Verbose
nie jest honorowane. Rozwiązanie: Dodaj [CmdletBinding()]
przed params
lub dodaj [Parameter(Mandatory=$true)]
lub coś podobnego do jednej lub więcej zmiennych poszczególnych parametrów.
Od about_parameters:
Wszystkie atrybuty są opcjonalne. Jeśli jednak pominięto atrybut CmdletBinding , wówczas aby można było rozpoznać funkcję zaawansowaną, funkcja musi zawierać atrybut Parameter.
about_Functions_CmdletBindingAttribute ma więcej informacji na temat zdolności nadawanych cmdletom.
Oto co pracował dla mnie:
- Zastosowanie
Write-Verbose "Text" -Verbose
wewnątrz skryptu - Przypisywanie budować zmienna
system.debug
dotrue
Zazwyczaj sposób można to zrobić w PowerShell jest albo wywołać komendę '-Verbose' lub ustaw zmienną' $ VerbosePreference = 'Continue''. –
Ponieważ skrypt ma 'params', dostaje on automatyczne' CmdletBinding', więc '-Verbose' powinno działać jako @KeithHill powiedział. – Eris
Dziękujemy @KeithHill i @Eris. Najpierw próbowałem z '-Verbose' i bez zmian. Następnie dodałem "[CmdletBinding()]" przed 'param()' w skrypcie PowerShell i zaczęły się drukowane komunikaty Verbose. – Jeremy