Создайте файл .exe в .NET Core RC2

Каждый раз, когда я создаю проект с использованием новых шаблонов .NET Core RC2, мне не предоставляется runnable. EXE- файл. Если я удалю F5 для отладки моего консольного приложения, он отлично работает через

C:\Program Files\dotnet\dotnet.exe 

заявление. И если я использую

 dotnet run 

команды в папке, она отлично работает. Но я не вижу возможности запуска приложения без инструментов .NET Core CLI.

Содержимое моего

  bin\Debug\netcoreapp1.0\ 

папка выглядит так:

Структура папок бинов

Как видите, нет. Доступен EXE- файл. Просто DLL.

Я что-то пропускаю? Или что-то не так с моим файлом project.json?

 { "version": "1.0.0-*", "buildOptions": { "emitEntryPoint": true }, "dependencies": { "Microsoft.NETCore.App": { "type": "platform", "version": "1.0.0-rc2-3002702" } }, "frameworks": { "netcoreapp1.0": { "imports": "dnxcore50" } } } 

Благодаря!

На самом деле в .NET Core есть 2 модели приложений:

  • Портативные приложения : в значительной степени вдохновленные «консольными приложениями DNX», эти приложения не создают .exe файлы и вместо этого исполняются общей средой выполнения .NET Core (чья версия определена пакетом Microsoft.NETCore.App , благодаря специальным type: platform атрибут type: platform ). Для использования портативных приложений на компьютере должна быть установлена ​​соответствующая среда выполнения .NET Core. Если точная версия не может быть найдена, при запуске dotnet run .

  • Автономные приложения : автономные приложения действительно похожи на старые старые консольные приложения .NET, поскольку они создают файлы .exe . Среда выполнения .NET Core не требуется устанавливать на компьютере, поскольку она непосредственно встроена в приложение.

В настоящее время вы используете первую модель. Чтобы использовать автономную модель, вам нужно настроить ваш project.json :

  • Добавьте раздел времени runtimes чтобы ubuntu.14.04-x64 среду, на которую будет нацеливаться ваше приложение (например, 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": { } } } 

Ответ приведен в документации с полными шагами.

Вы можете создать два типа развертываний для приложений .NET Core:

  1. Рациональное развертывание
  2. Самостоятельное развертывание

Для исполняемого файла .EXE следует использовать автономное развертывание .

Чтобы создать исполняемое приложение из консольного приложения .NET Core, вы можете использовать инструмент dotnet . Просто запустите в своем каталоге проекта:

 dotnet publish --runtime win7-x64 

Это создает автономное приложение (автономное развертывание, включает в себя все необходимые библиотеки, потребляющие не менее 60 МБ на вашем диске). Конечно, вы также можете выбрать другие osx.10.11-x64 , например osx.10.11-x64 или ubuntu.16.04-x64 .

Если вы использовали конфигурацию по умолчанию ( New Project -> Console App (.NET Core) ), модификация какого-либо файла конфигурации не требуется.

Шаг 1: удалите "type": "platform", из Project.json в разделе раздела

Шаг 2: добавьте раздел времени выполнения в project.json. Обратите внимание, что каждый раздел разделяется запятой. Добавьте время выполнения. ниже – просто пример выигрыша 10.

 "runtimes": { "win10-x64": {} } 

Шаг 3: команда восстановления dotnet в вашем проекте. (откройте cmd, перейдите в папку проекта, где есть папка src, запустите регенератор dotnet)

Шаг 4: шаг dotnet pack 4: dotnet build -r win10-x64 – или просто построить.

Шаг 5: вы можете заметить .exe, созданный под debug / netcore / win10 /

В ASP.NET Core попробуйте изменить type вашего приложения по default , в project.json :

 "Microsoft.NETCore.App": { "type": "default", "version": "1.0.0-*" } 
  • почему remove-migration запускает мое приложение?
  • Измените коллекцию маршрутов MVC6 после запуска
  • Как читать значения AppSettings из Config.json в ASP.NET Core
  • Проверка MVC / JQuery не принимает запятую как разделитель
  • Loop / отражать все свойства во всех моделях EF для установки типа столбца
  • Выберите «Помощник тегов» в ASP.NET Core MVC
  • Как включить CORS в ядре ASP.NET
  • Передайте модель controllerу с помощью JQuery / Ajax
  • Хостинг проектов ASP.NET 5 на IIS
  • ASP.NET Core 1.0 при ошибке IIS 502.5
  • Произошла ошибка при попытке определить идентификатор процесса процесса DNX, на котором размещено ваше приложение
  • Давайте будем гением компьютера.