为什么Console.WriteLine没有输出任何内容到NuGet包管理器窗口?

时间:2012-10-23 16:44:06

标签: powershell

有谁能告诉我为什么下面的代码没有向PS屏幕显示“blablabla”?我只看到从函数返回的随机数。

# Create a function that loads our managed code into powershell
function InitType 
{ 
    [string]$SourceCode =  @"

    using System;

    namespace TestApp 
    {       

        // This class houses the public methods that we'll use from powershell

        public static class TestMethods
        {
            public static int GetRandom()
            {
                var id = new Random().Next();
                Console.WriteLine("bla bla bla");
                return id; 
            }
        }
    }
"@

    # use the powershell 2.0 add-type cmdlet to compile the source and make it available to our powershell session 
    add-type -TypeDefinition $SourceCode
}

# Load our C# code 
InitType

# Call our method 
[TestApp.TestMethods]::GetRandomAndOutputMessage

()

1 个答案:

答案 0 :(得分:3)

Nuget Package Manager不是 PowerShell控制台。 Console.WriteLine写入控制台“应用程序”的控制台。 Visual Studio不是控制台应用程序。运行NPM的窗口托管PowerShell引擎并实现PSHost接口以允许引擎将信息输出到窗口。 Console.WriteLine在该方案中不起作用。