2015-01-14 14 views
4

本博客文章是我發現的唯一的事情是接近的問題,但它並沒有解釋如何配置部署使用PS/DSC與verbose選項運行: http://nakedalm.com/create-log-entries-release-management/如何在vNext發佈模板的部署日誌中獲取powershell腳本輸出?

我能得到這個基於Agent的發行模板來運行腳本:

Write-Debug "debug" 
Write-Output "output" 
Write-Verbose "verbose" 
Write-Warning "warning" 

的向下鑽取部署日誌此版本提供了日誌,該行:

output 
WARNING: warning 

如果我添加-verbose到Arguments字段我還在日誌中獲得了「VERBOSE:verbose」行。

這很好,但我需要訪問系統變量($ Stage,$ BuildNumber等)。當我創建一個vNext模板來運行相同的腳本(說明在此:http://www.visualstudio.com/en-us/get-started/deploy-no-agents-vs.aspx),日誌報告:

Copying recursively from \\vsalm\Drops2\TestBuild\TestBuild_20130710.3 to c:\Windows\DtlDownloads\my vnext component succeeded. 

我很高興,這個複製操作成功以及所有,但希望我在我的腳本的輸出也在這個日誌中。有沒有人有關於配置「使用PS/DSC部署」操作的任何想法,以便發佈管理捕獲PowerShell腳本輸出?

回答

5

對於vNext發佈模板,如果要查看日誌中的powershell腳本輸出,請嘗試帶有-verbose開關的Write-Verbose

例如, Write-Verbose "Some text" -verbose

+0

這可行,但我在我的版本中有一個try/catch塊,之後沒有更多的消息正在寫入,而該部分中的操作執行得很好...... – Nick

0

請允許我無恥地插入my own blog article關於此主題,因爲我發現獲取一切正確的腳本並不容易。

下面的腳本骨架確保標準輸出輸出而沒有空行記錄,並且該處理停止在第一錯誤,在這種情況下,兩個錯誤細節和標準輸出輸出高達那個點在MSRM是可見的:

function Deploy() 
{ 
    $ErrorActionPreference = "Stop" 

    try 
    { 
     # 
     # Deployment actions go here. 
     # 
    } 
    catch 
    { 
     # Powershell tracks all Exceptions that occured so far in $Error 
     Write-Output "$Error" 

     # Signal failure to MSRM: 
     $ErrorActionPreference = "Continue" 
     Write-Error "Error: $Error" 
    } 
} 

pushd $Global:ApplicationPath 
Deploy | Out-String | Write-Verbose -Verbose 
popd 

這只是最終結果,其背後的解釋可以找到here