Как создать вывод EXE из проекта консольного приложения .Net Core в Visual Studio 2017? - PullRequest
0 голосов
/ 18 декабря 2018

Почему, когда я создаю проект .Net Core Console Application в Visual Studio 2017, он выводит DLL вместо EXE?

Что ж, мы знаем ответ на этот вопрос, и он хорошо документирован иотвечал на другие, очень популярные вопросы о StackOverflow.

Я был разочарован количеством прыжков в других ответах.

Итак, есть ли более простой способ создать exe?

1 Ответ

0 голосов
/ 18 декабря 2018

Ну, это то, что я придумал.

Я решил написать это как собственный вопрос и ответ, поскольку технически это не ответ на вопрос «Как создать .Net Core Exe?»

Переносимое приложение .Net Core - это библиотека DLL, и вы запускаете ее с dotnet yourapp.dll, если только это не автономное развертывание, в которомЕсли вы запускаете его с yourapp.exe в Windows или ./yourapp в Linux.

Этот метод не пытается решить или изменить его.

Документация для этого здесь: https://docs.microsoft.com/en-us/dotnet/core/deploying/index

Я учился тому, как поддерживать новое (.Net Core и Standard) и старое (.Net Framework) одновременно.

Теперь это стало действительно просто.

Вот самый маленький yourapp.csproj файл для .Net SDK:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.0</TargetFramework>
  </PropertyGroup>
</Project>

Это выплевывает yourapp.dll

Но, если вы измените его на:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFrameworks>netcoreapp2.0;net451</TargetFrameworks>
  </PropertyGroup>
</Project>

(обратите внимание на изменение с <TargetFramework> на <TargetFrameworks>!)

Теперь, когда вы строите, в выходном каталоге есть net451 и netcoreapp2.0 directories.В netcoreapp2.0 есть портативное приложение dllnet451 есть нормальная полноценная платформа, консоль exe.

Очевидно, что она не переносимая, но и Windows exe, созданная другими методами.Если вам абсолютно необходим Windows EXE-файл, ориентированный на .net Core, используйте метод, приведенный в верхней части статьи.Конечно, вы можете использовать и то, и другое, что замечательно для узла TargetFrameworks.

Вот вопрос StackOverflow, в котором содержится дополнительная информация о создании реальных EXE-файлов .Net Core:

VS2017Скомпилируйте NetCoreApp как EXE

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...