2021-08-20
下面命令将控制台程序发布成独立的.exe程序,并且不依赖其它.dll文件。
dotnet publish -c Release -o publish -p:PublishReadyToRun=true -p:PublishSingleFile=true -p:PublishTrimmed=true --self-contained true
在windows平台上,发布成针对linux的可能会报错,要将PublishReadyToRun改为false。
dotnet publish -c Release -r linux-x64 -o ./publish/linux -p:PublishReadyToRun=false -p:PublishSingleFile=true -p:PublishTrimmed=true --self-contained true
.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>