本文主要介绍.NET Core中Console控制台项目,通过.NET Core命令或Warp工具,发布成.exe可执行独立的应用程序的方法。出于调试目的,可以使用dll。使用dotnet ConsoleApp2.dll来运行它。如果要生成exe,则必须生成独立的应用程序。

1、.NET Core命令生成.exe可执行程序

如果是.NET Core 1.0可能需要,csproj(支持的rid列表)中添加目标运行时的运行时标识符:

<PropertyGroup>
    <RuntimeIdentifiers>win10-x64;ubuntu.16.10-x64</RuntimeIdentifiers>
</PropertyGroup>

从.NET Core 2.0开始不再需要上述步骤。

运行发布应用程序命令

dotnet publish -c Release -r win10-x64 

或者 

dotnet publish -c Release -r ubuntu.16.10-x64

2、使用Warp工具生成单独执行程序

Warp允许您创建独立的单个二进制应用程序,使其更简单,更符合人体工程学,从而将您的应用程序交付给您的客户。当您使用的技术(如Node.js.NET CoreJava等)包含许多必须与应用程序一起提供的依赖项时,独立的二进制文件特别方便。
Warp是用Rust编写的,在LinuxWindowsmacOS上都受支持。

官方地址https://github.com/dgiagio/warp

2.1、直接使用warp-packer

.\warp-packer --arch windows-x64 --input_dir bin/Release/netcoreapp2.1/win10-x64/publish --exec myapp.exe --output myapp.exe

bin/Release/netcoreapp2.1/win10-x64/publish:发布的路径,替换成你的项目发布的路径就可以了。

2.2、使用dotnet-warp工具

官方地址https://github.com/Hubert-Rybak/dotnet-warp

1)安装dotnet-warp工具

dotnet tool install -g dotnet-warp

2)打包命令

根据需要任选一个即可。

使用Warp将当前目录中的项目打包为单个可执行文件

dotnet-warp 

使用ILLink.Tasks打包前链接项目

dotnet-warp -l aggressive

注意: .NET团队计划在.NET Core 3.0中内置一个支持生成“独立EXE”的打包解决方案。

推荐文档