В консольном приложении netcoreapp3.0, myprogram.exe (с расширением exe) генерируется по умолчанию. Что это такое?

#c# #.net-core #console-application

#c# #.net-core #консольное приложение

Вопрос:

У меня есть следующий простой проект:

 <Project Sdk="Microsoft.NET.Sdk">

 <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <LangVersion>8.0</LangVersion>
 </PropertyGroup>
 </Project>
  

В netcoreapp3.0:

При запуске «dotnet build» я нахожу файл myprogram.dll генерируется с размером 5k плюс myprogram.exe генерируется с размером 239k

В netcoreapp2.2:

myprogram.exe не генерируется.

Я могу запустить программу :

     dotnet myprogram.dll
  

Или

     myprogram.exe //it need .netcore be installed.
  

Почему эти два файла: myprogram.exe и myprogram.dll генерируется в netcoreapp3.0, но только в netcoreapp2.2 myprogram.dll генерируется?

Ответ №1:

Из https://devblogs.microsoft.com/dotnet/announcing-net-core-3-preview-1-and-open-sourcing-windows-desktop-frameworks/

Приложения NET Core теперь создаются с исполняемыми файлами. Это новое для приложений, использующих глобально установленную версию .NET Core. До сих пор только автономные приложения имели исполняемые файлы. Вы можете увидеть исполняемые файлы, созданные в следующих примерах.

Вы можете ожидать от этих исполняемых файлов того же, что и от других собственных исполняемых файлов, таких как:

  • Вы можете дважды щелкнуть по исполняемому файлу.
  • Вы можете запустить приложение из командной строки без использования инструмента dotnet, используя myconsole.exe , в Windows, и ./myconsole, в Linux и macOS, как вы можете видеть в следующих примерах.

Итак, это просто более удобный способ использования программы. Вам не нужно использовать командную строку, например, dotnet myapp.dll для запуска приложения. Вы можете запустить exe.

Комментарии:

1. Это многообещающая функция.