这篇博文是我发现的唯一接近问题的帖子,但它没有解释如何配置使用PS / DSC部署以使用详细选项运行: http://nakedalm.com/create-log-entries-release-management/
我可以使用这个基于代理的发布模板来运行脚本:
Write-Debug "debug"
Write-Output "output"
Write-Verbose "verbose"
Write-Warning "warning"
向下钻取此版本的部署日志会提供包含以下行的日志:
output
WARNING: warning
如果我在Arguments字段中添加-verbose,我也会得到一个" 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脚本输出?
答案 0 :(得分:5)
对于vNext发布模板,如果要在日志中查看powershell脚本输出,请尝试使用-verbose开关Write-Verbose
。
EG。 Write-Verbose "Some text" -verbose
答案 1 :(得分:1)
请允许我无耻地插入关于此主题的my own blog article,因为我发现制作一个能完成所有事情的脚本并不容易。
以下脚本框架确保在没有空行的情况下记录stdout输出,并且在第一个错误上停止处理,在这种情况下,错误详细信息和到该点的stdout输出在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。