1

次のコードを一般的な PS ウィンドウに入力すると、出力で "asdf" を正しく取得できます。

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

しかし、NuGet パッケージ マネージャー コンソールで実行すると、何も出力されません。誰でも理由を教えてもらえますか?

4

1 に答える 1

2

NPM はコンソール アプリではないためです。これは Visual Studio 内でホストされ、PowerShell ホスト インターフェイスを実装して、PowerShell エンジンが出力を WPF ウィンドウと思われるものに表示できるようにします。

NPM で出力を取得するには:

Write-Host "asdf"

または単に

"asdf"

コマンドレットでない場合は、次のようなことができます。

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 に答える