使用Nuget包管理器控制台的Console.WriteLine

时间:2012-10-23 19:01:54

标签: visual-studio-2010 powershell nuget

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

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

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

1 个答案:

答案 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();
}