Строить.EXE файл in.NET основной алгоритм RC2


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

C:Program Filesdotnetdotnet.exe 

приложение. И если я использую

dotnet run 

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

содержание моего

 binDebugnetcoreapp1.0
выглядит так:

Как видите, нет .EXE. Только dll.

Я что-то упускаю из виду? Или что-то не так с моим проектом.файл 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"
    }
  }
}

спасибо!

5 71

5 ответов:

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

  • портативные приложения: сильно вдохновленные "консольными приложениями DNX", эти приложения не производят .exe файлы и вместо этого выполняются общей средой выполнения .NET Core (чья версия определяется Microsoft.NETCore.App пакет, благодаря его специальной ). Для использования портативных приложений на компьютере должна быть установлена соответствующая среда выполнения .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": { }
  }
}

ответ документация С полным шаги.

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

  1. фреймворк-зависимое развертывание
  2. автономное развертывание

для runnable .EXE файл, то автономное развертывание должен быть использован.

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

dotnet publish --runtime win7-x64

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

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

Шаг 1: удалить "type": "platform", из проекта.json под frameworks раздел

Шаг 2: Добавьте раздел времени выполнения в свой проект.формат JSON. Примечание каждый раздел разделяется запятой. Добавьте свою среду выполнения. ниже приведен только пример для win 10.

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

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

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

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

"Microsoft.NETCore.App": {
  "type": "default",
  "version": "1.0.0-*"
}