1

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

4

2 回答 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
于 2021-03-23T09:39:05.537 回答
1

请改用此命令

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

文档

于 2021-03-23T09:31:13.090 回答