1

如果我在典型的 PS 窗口中键入以下代码,我可以在输出中正确地获得“asdf”:

[System.Console]::WriteLine("asdf")

但是,如果我在 NuGet 包管理器控制台中执行此操作,则不会输出任何内容。谁能告诉我为什么?

4

1 回答 1

2

因为 NPM 不是控制台应用程序。它托管在 Visual Studio 中并实现 PowerShell 主机接口以允许 PowerShell 引擎将输出显示到可能的 WPF 窗口。

要在 NPM 中获取输出,请使用:

Write-Host "asdf"

或者干脆

"asdf"

如果不在 cmdlet 中,您可以执行以下操作:

private void WriteHost(string message)
{
    var runspace = Runspace.DefaultRunspace;
    var pipeline = runspace.CreatePipeline("Write-Host '" + message + "'", false);
    pipeline.Invoke();
}
于 2012-10-23T21:16:36.180 回答