5

这篇博客文章是我发现的唯一接近问题的东西,但它没有解释如何配置使用 PS/DSC 部署以使用详细选项运行:http: //nakedalm.com/create-log-条目-发布-管理/

我可以获得这个基于代理的发布模板来运行脚本:

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 脚本输出?

4

2 回答 2

5

对于 vNext 发布模板,Write-Verbose如果您想在日志中查看 powershell 脚本输出,请尝试使用 -verbose 开关。

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

于 2015-01-20T12:45:26.717 回答
1

请允许我无耻地插入我自己的关于这个主题的博客文章,因为我发现要获得一个能把所有事情都做对的脚本并不容易。

以下脚本框架确保记录的 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

这只是最终结果,背后的解释可以在这里找到。

于 2015-09-21T20:18:53.443 回答