NET5.0 PublishSingleFile 发布多个文件

NET5.0 PublishSingleFile publish more than one file

我正在发布我的 net 5 应用:

dotnet publish -r win-x64 -p:PublishSingleFile=true --self-contained true

但是,结果我有:

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        2/16/2021  10:20 PM         747896 clrcompression.dll
-a----        2/16/2021  10:20 PM        1322360 clrjit.dll
-a----        2/16/2021  10:20 PM        5153144 coreclr.dll
-a----        3/15/2021  11:48 AM       53841260 fff.exe
-a----        3/15/2021  11:48 AM          11300 fff.pdb
-a----        3/15/2021  11:48 AM            537 fff.xml
-a----        2/16/2021  10:20 PM        1056640 mscordaccore.dll

仅部署 fff.exe 是行不通的。也必须部署dll。为什么? 可在此处找到供参考的源代码:Fast Find in Files

改为使用此命令

dotnet publish -r win-x64 /p:PublishSingleFile=true /p:IncludeNativeLibrariesInSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true -c release

Documentation

deploying just fff.exe does not work. Have to deploy dll's too. Why?

回答您的实际问题...以下是 fff.exe:

更多文件的原因
  • coreclr.dll 包含 dotnet 核心框架的原生库。
  • clrjit.dll 包含 dotnet 核心框架的即时编译器
  • clrcompression.dll 包含本机数据压缩例程。
  • *.pdb 包含调试符号。您可以在发布版本中省略它们。
  • *.xml 包含摘要(类、方法等的描述)

就像@JL0PD 已经提到的那样。要获得您想要的结果,只需使用此命令发布您的应用程序:

dotnet publish -r win-x64 /p:PublishSingleFile=true /p:IncludeNativeLibrariesInSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true -c release