Ответ 1
В .NET Core есть 2 модели приложений:
-
Портативные приложения: сильно вдохновленные "консольными приложениями DNX", эти приложения не производят файлы
.exe
и вместо этого исполняются общей средой выполнения .NET Core (чья версия определяемый пакетомMicrosoft.NETCore.App
, благодаря специальному атрибутуtype: platform
). Для использования портативных приложений на компьютере должна быть установлена соответствующая среда выполнения .NET Core. Если точная версия не найдена, при запускеdotnet run
возникает исключение. -
Автономные приложения: автономные приложения действительно похожи на старые старые консольные приложения .NET, поскольку они создают файлы
.exe
. Среда выполнения .NET Core не должна устанавливаться на компьютере, поскольку она непосредственно встроена в само приложение.
В настоящее время вы используете первую модель. Чтобы использовать автономную модель, вам необходимо настроить project.json
:
- Добавьте раздел
runtimes
, чтобы отобразить объекты, на которые будет нацелено ваше приложение (например,win7-x64
илиubuntu.14.04-x64
). Вы можете найти полный список здесь. - Удалите зависимость
Microsoft.NETCore.App
. Вместо этого вы можете заменить его на этот пакет:"NETStandard.Library": "1.5.0-rc2-24027"
.
Вот пример автономного приложения:
{
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true,
"warningsAsErrors": true
},
"dependencies": {
"Microsoft.Extensions.Configuration.Binder": "1.0.0-rc2-final",
"Microsoft.Extensions.Configuration.CommandLine": "1.0.0-rc2-final",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-rc2-final",
"Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-final",
"Microsoft.Extensions.DependencyInjection": "1.0.0-rc2-final",
"Microsoft.Extensions.Logging": "1.0.0-rc2-final",
"Microsoft.Extensions.Logging.Console": "1.0.0-rc2-final",
"NETStandard.Library": "1.5.0-rc2-24027"
},
"frameworks": {
"net451": { },
"netcoreapp1.0": {
"dependencies": {
"System.Net.Ping": "4.0.0-rc2-24027"
},
"imports": [
"dnxcore50",
"dotnet5.6",
"portable-net451+win8"
]
}
},
"runtimes": {
"win7-x64": { }
}
}