2

谁能告诉我为什么下面的代码没有在 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

()

4

1 回答 1

3

Nuget包管理器不是PowerShell 控制台。Console.WriteLine 写入控制台“应用程序”的控制台。Visual Studio 不是控制台应用程序。运行 NPM 的窗口托管 PowerShell 引擎并实现 PSHost 接口以允许引擎将信息输出到窗口。Console.WriteLine 在这种情况下不起作用。

于 2012-10-23T21:22:53.900 回答