PublishSingleFile 发布多个文件

问题描述 投票:0回答:2

我正在发布我的 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。为什么? 参考源代码可以在这里找到:在文件中快速查找

publish .net-5 single-file
2个回答
2
投票

仅部署 fff.exe 不起作用。还必须部署dll。为什么?

回答您的实际问题...以下是为什么有更多 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

1
投票

请改用此命令

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

文档

© www.soinside.com 2019 - 2024. All rights reserved.