如何构建一个在.NET CoreCLR上运行的hello-world控制台应用程序?

Bry*_*yan 3 .net console-application coreclr

我想使用.NET CoreCLR运行一个hello-world控制台应用程序.

到目前为止,我的代码如下.

// Program.cs

using System;

namespace Study
{
    public class Program
    {
        public void Main()
        {
            Console.WriteLine("Hello world!");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

 

// project.json

{
  "frameworks": {
    "dnxcore50": { }
  }
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用命令运行此项目:

dnvm use 1.0.0-beta8 -r coreclr
dnx run
Run Code Online (Sandbox Code Playgroud)

但是,这会产生以下错误:

Microsoft.Dnx.Compilation.CSharp.RoslynCompilationException: warning CS8021: No value for RuntimeMetadataVersion found. No assembly containing System.Object was found nor was a value for RuntimeMetadataVersion specified through options.
(1,11): DNXCore,Version=v5.0 error CS0246: The type or namespace name 'System' could not be found (are you missing a using directive or an assembly reference?)
(2,11): DNXCore,Version=v5.0 error CS0246: The type or namespace name 'System' could not be found (are you missing a using directive or an assembly reference?)
(3,11): DNXCore,Version=v5.0 error CS0246: The type or namespace name 'System' could not be found (are you missing a using directive or an assembly reference?)
(1,58): DNXCore,Version=v5.0 error CS0518: Predefined type 'System.String' is not defined or imported
(2,54): DNXCore,Version=v5.0 error CS0518: Predefined type 'System.String' is not defined or imported
(3,67): DNXCore,Version=v5.0 error CS0518: Predefined type 'System.String' is not defined or imported
d:\rp\study\004dnxCoreHelloWorld\Program.cs(1,7): DNXCore,Version=v5.0 error CS0246: The type or namespace name 'System' could not be found (are you missing a using directive or an assembly reference?)
d:\rp\study\004dnxCoreHelloWorld\Program.cs(5,18): DNXCore,Version=v5.0 error CS0518: Predefined type 'System.Object' is not defined or imported
d:\rp\study\004dnxCoreHelloWorld\Program.cs(7,16): DNXCore,Version=v5.0 error CS0518: Predefined type 'System.Void' is not defined or imported
d:\rp\study\004dnxCoreHelloWorld\Program.cs(9,31): DNXCore,Version=v5.0 error CS0518: Predefined type 'System.String' is not defined or imported
d:\rp\study\004dnxCoreHelloWorld\Program.cs(9,13): DNXCore,Version=v5.0 error CS0518: Predefined type 'System.Object' is not defined or imported
d:\rp\study\004dnxCoreHelloWorld\Program.cs(9,13): DNXCore,Version=v5.0 error CS0103: The name 'Console' does not exist in the current context
d:\rp\study\004dnxCoreHelloWorld\Program.cs(5,18): DNXCore,Version=v5.0 error CS1729: 'object' does not contain a constructor that takes 0 arguments
   at Microsoft.Dnx.Compilation.CSharp.RoslynProjectReference.Load(AssemblyName assemblyName, IAssemblyLoadContext loadContext)

...et cetera...
Run Code Online (Sandbox Code Playgroud)

pg0*_*0xC 6

Project缺少System.Console依赖项

这就是框架/依赖关系部分的外观:

"dependencies": {
},

"frameworks": {
  "dnxcore50": {
    "dependencies": {
      "System.Console": "4.0.0-beta-*"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这是我认为最小的一套.

运行使用:

dnvm use 1.0.0-beta8 -r coreclr
dnu restore
dnx run
Run Code Online (Sandbox Code Playgroud)