如果我在典型的PS窗口中键入以下代码,我可以在输出中正确获取“asdf”:
[System.Console]::WriteLine("asdf")
但是,如果我在NuGet包管理器控制台中执行此操作,则不会输出任何内容。谁能告诉我为什么?
答案 0 :(得分: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();
}