Не удается запустить консольные приложения DNX
У меня проблемы с запуском простого консольного тестового приложения с использованием командной строки 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
Это проект. 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)
2 ответа
Вы неправильно настроили. Я думаю, что вы хотите иметь ниже в файле project.json:
{
"frameworks": {
"dnx451" : {
}
"dnxcore50" : {
"dependencies": {
"System.Console": "4.0.0-beta-*"
}
}
},
"commands": {
"me": "run"
}
}
Теперь запустите:
dnu restore
dnx . me
Он должен работать.
Последние версии System.Console, отличные от бета-версий, в настоящее время несовместимы с "dnxcore50" и имеют серьезные изменения.
Предлагаемые варианты:
1- для целевого фреймворка "dnx451" вместо основного;
2- Использовать только бета-версию System.Console с "dnxcore50"; или же
3- Чтобы использовать Debug.Print() вместо Console.WriteLine()