2015-05-15 4 views
6

Ich habe Probleme beim Ausführen einer einfachen Konsolentest-App mit der dnx-Befehlszeile. Ich weiß, dass dies im Moment eine sich entwickelnde Technologie ist, aber ich würde das gerne für meine eigene geistige Gesundheit einsetzen. HierDNX-Konsolenanwendungen können nicht ausgeführt werden

ist das Programm:

using System; 

public class Program 
{ 
    public void Main(string[] args) 
    { 
     Console.WriteLine("Foo"); 
     Console.ReadLine(); 
    } 
} 

Dies ist die DNVM Liste

Active Version  Runtime Architecture Location     Alias 
------ -------  ------- ------------ --------     ----- 
    * 1.0.0-beta4 clr  x64   C:\Users\Tim\.dnx\runtimes 
     1.0.0-beta4 clr  x86   C:\Users\Tim\.dnx\runtimes 
     1.0.0-beta4 coreclr x64   C:\Users\Tim\.dnx\runtimes 
     1.0.0-beta4 coreclr x86   C:\Users\Tim\.dnx\runtimes 

diesem Zusammenhang die project.json ist

{ 

    "frameworks": { 
     "aspnet50":{} 
    }, 

    "dnxcore50" : { 
     "dependencies": { 
     "System.Console": "4.0.0-*", 
     "System.Collections": "4.0.10-*", 
     "System.Linq": "4.0.0-*", 
     "System.Threading": "4.0.10-*", 
     "Microsoft.CSharp": "4.0.0-*" 
     } 
    }, 

    "commands": { 
     "me": "Program" 
    } 
} 

Dies ist das Ergebnis von dnu build ConsoleApp

Building ConsoleApp for Asp.Net,Version=v5.0 
    Using Project dependency ConsoleApp 1.0.0 
    Source: C:\_Git\learndnx\ConsoleApp\project.json 

    Using Assembly dependency framework/mscorlib 4.0.0.0 
    Source: C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\mscorlib.dll 

    Using Assembly dependency framework/System 4.0.0.0 
    Source: C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.dll 

    Using Assembly dependency framework/System.Core 4.0.0.0 
    Source: C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.Core.dll 

    Using Assembly dependency framework/Microsoft.CSharp 4.0.0.0 
    Source: C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\Microsoft.CSharp.dll 


Build succeeded. 
    0 Warnings(s) 
    0 Error(s) 

Time elapsed 00:00:00.3038706 

Hier ist, wo ich verwirrt bin, weil einige der älteren Videos, die ich gesehen habe, jetzt veraltet sind und ich bin nicht sicher, wo ich suchen muss, um herauszufinden, was sich geändert hat.

Ich erwarte, dass dnx ConsoleApp me mein Programm laufen wird, aber es tut es leider nicht.

Fehler:

System.InvalidOperationException: Unable to load application or execute command 'Program'. Available commands: me. 
    at Microsoft.Framework.ApplicationHost.Program.ThrowEntryPointNotfoundException(DefaultHost host, String applicationN 
ame, Exception innerException) 
    at Microsoft.Framework.ApplicationHost.Program.ExecuteMain(DefaultHost host, String applicationName, String[] args) 
    at Microsoft.Framework.ApplicationHost.Program.Main(String[] args) 

Antwort

7

Sie haben es falsch konfiguriert. Ich denke, was wollen Sie in der project.json Datei ist die unter einem haben:

{ 
    "frameworks": { 
      "dnx451" : { 
      } 
      "dnxcore50" : { 
       "dependencies": { 
        "System.Console": "4.0.0-beta-*" 
       } 
      } 
    }, 

    "commands": { 
     "me": "run" 
    } 
} 

Jetzt laufen:

dnu restore 
dnx . me 

Es sollte funktionieren.

+2

ja ich sehe den Fehler im Rahmen Abschnitt. Vielen Dank. ist "Run" ein Schlüsselwort ?? Ich habe erwartet, dass dies der Name meiner Klasse "Programm" ist. – ChiliYago

+0

Wo genau wird dieses "run" Schlüsselwort deklariert? Sollte es nicht "ich" sein: "Programm"? – bitbonk

+4

auf beta7 und später ist es "dnx mich" statt "dnx. ich' – pg0xC

0

Die neuesten Versionen von System.Console, die keine Beta-Versionen sind, sind derzeit nicht kompatibel mit "dnxcore50" und haben brechende Änderungen.

Empfohlene Optionen:

1- Um den vollständigen Rahmen "dnx451" anstelle von Kernziel;

2- Um nur eine Beta-Version von System.Console mit "dnxcore50" zu verwenden; oder

3- Zur Nutzung Debug.Print() anstelle von Console.WriteLine()