次のコードを一般的な PS ウィンドウに入力すると、出力で "asdf" を正しく取得できます。
[System.Console]::WriteLine("asdf")
しかし、NuGet パッケージ マネージャー コンソールで実行すると、何も出力されません。誰でも理由を教えてもらえますか?
次のコードを一般的な PS ウィンドウに入力すると、出力で "asdf" を正しく取得できます。
[System.Console]::WriteLine("asdf")
しかし、NuGet パッケージ マネージャー コンソールで実行すると、何も出力されません。誰でも理由を教えてもらえますか?
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();
}