Molti Visual Studio Online (VSO) build tasks utilizzano Write-Verbose per scopi di debug come visto in this example, ma come si attiva Write-Verbose in modo che le istruzioni di debug vengano visualizzate nei registri di output?Come visualizzare l'attività di compilazione di Visual Studio in linea Istruzioni Write-Verbose?
risposta
Per visualizzare le istruzioni dettagliate e di debug nel registro, è sufficiente aggiungere la variabile System.Debug alle variabili della definizione.
Grazie. Aggiungendo una variabile con il nome "system.debug" e il valore di "true" alle variabili di compilazione, ho lavorato e ora posso vedere le istruzioni Write-Verbose dagli script di attività di PowerShell. –
(semplicemente spostando commenti a una risposta)
Poiché lo script ha params, ma non ha CmdletBinding
, né una [Parameter(...)]
poi -Verbose
non viene effettuato.
Soluzione: aggiungere [CmdletBinding()]
prima dello params
o aggiungere uno [Parameter(Mandatory=$true)]
o qualcosa di simile a una o più delle singole variabili di parametro.
Da about_parameters:
Tutti gli attributi sono opzionali. Tuttavia, se si omette l'attributo CmdletBinding , per essere riconosciuto come funzione avanzata, la funzione deve includere l'attributo Parametro.
about_Functions_CmdletBindingAttribute ha ulteriori informazioni sulle capacità conferite ai cmdlet.
Ecco cosa ha funzionato per me:
- Usa
Write-Verbose "Text" -Verbose
all'interno dello script - Assegna costruire variabile
system.debug
atrue
Di solito il modo di fare questo in PowerShell è o richiamare il comando con '-Verbose' o imposta la variabile' $ VerbosePreference = 'Continua''. –
Poiché lo script ha 'params', ottiene un' CmdletBinding' automatico, quindi '-Verbose' dovrebbe funzionare come dice @KeithHill. – Eris
Grazie a voi @KeithHill e @Eris. Per prima cosa ho provato con '-Verbose' e nessun cambiamento. Poi ho aggiunto '[CmdletBinding()]' prima di 'param()' nello script PowerShell e i messaggi Verbose hanno iniziato a stampare. – Jeremy