无法 运行 DNX 控制台应用程序
Cannot Run DNX Console Applications
我在使用 dnx 命令行 运行 设置一个简单的控制台测试应用程序时遇到问题。我知道目前这是一项不断发展的技术,但为了我自己的理智,我想让它继续下去。
程序如下:
using System;
public class Program
{
public void Main(string[] args)
{
Console.WriteLine("Foo");
Console.ReadLine();
}
}
这是 DNVM 列表
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
这是project.json
{
"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"
}
}
这是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
这是我感到困惑的地方,因为我看过的一些旧视频现在已经过时了,我不确定到哪里去寻找发生了什么变化。
我期待 dnx ConsoleApp me
会 运行 我的程序,但遗憾的是它不会。
错误:
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)
你配置错了。我想你想要的是 project.json 文件中的以下内容:
{
"frameworks": {
"dnx451" : {
}
"dnxcore50" : {
"dependencies": {
"System.Console": "4.0.0-beta-*"
}
}
},
"commands": {
"me": "run"
}
}
现在运行:
dnu restore
dnx . me
应该可以。
除 Beta 版本外,System.Console 的最新版本目前与 "dnxcore50" 不兼容,并且有重大更改。
建议选项:
1- 以完整框架为目标 "dnx451" 而不是核心;
2- 仅将 System.Console 的测试版与 "dnxcore50" 一起使用;或者
3- 使用 Debug.Print() 而不是 Console.WriteLine()
我在使用 dnx 命令行 运行 设置一个简单的控制台测试应用程序时遇到问题。我知道目前这是一项不断发展的技术,但为了我自己的理智,我想让它继续下去。
程序如下:
using System;
public class Program
{
public void Main(string[] args)
{
Console.WriteLine("Foo");
Console.ReadLine();
}
}
这是 DNVM 列表
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
这是project.json
{
"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"
}
}
这是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
这是我感到困惑的地方,因为我看过的一些旧视频现在已经过时了,我不确定到哪里去寻找发生了什么变化。
我期待 dnx ConsoleApp me
会 运行 我的程序,但遗憾的是它不会。
错误:
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)
你配置错了。我想你想要的是 project.json 文件中的以下内容:
{
"frameworks": {
"dnx451" : {
}
"dnxcore50" : {
"dependencies": {
"System.Console": "4.0.0-beta-*"
}
}
},
"commands": {
"me": "run"
}
}
现在运行:
dnu restore
dnx . me
应该可以。
除 Beta 版本外,System.Console 的最新版本目前与 "dnxcore50" 不兼容,并且有重大更改。
建议选项:
1- 以完整框架为目标 "dnx451" 而不是核心;
2- 仅将 System.Console 的测试版与 "dnxcore50" 一起使用;或者
3- 使用 Debug.Print() 而不是 Console.WriteLine()