本文主要介绍.NET Core 3.1 和 .NET 5中,(Console)控制台应用程序独立发布成单独.exe可以执行文件,不依赖其它的.dll程序集的方法。

1、.NET Core 3.1 中dotnet publish发布命令

下面命令将控制台程序发布成独立的.exe程序,并且不依赖其它.dll文件。

dotnet publish -c Release -o publish -p:PublishReadyToRun=true -p:PublishSingleFile=true -p:PublishTrimmed=true --self-contained true

2、.NET 5 中dotnet publish发布命令

.NET 5 中需要使用Inclenativelibrariesforselfextract =true 参数。

命令:

dotnet publish -c Release -o publish -p:PublishReadyToRun=true -p:PublishSingleFile=true -p:PublishTrimmed=true --self-contained true -p:IncludeNativeLibrariesForSelfExtract=true

或者也可以在.csproj文件中添加IncludeNativeLibrariesForSelfExtract配置项,例如,

<PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net5.0</TargetFramework>
    <PublishSingleFile>true</PublishSingleFile>
    <RuntimeIdentifier>win-x64</RuntimeIdentifier>
    <PlatformTarget>x64</PlatformTarget>
   <IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>
</PropertyGroup>

推荐文档