问题描述
我正在尝试优化我的应用程序包的大小。针对 .NET5.0
当我运行以下命令时:
dotnet new console -o MyConsole
cd MyConsole
dotnet publish -r win-x64 -c release --self-contained
我得到了一个空白控制台应用程序的可分发版本。
如果我导航到 MyConsole/bin/release/net5.0/win-x64/
文件夹,我会看到生成了很多 DLL。那些甚至不被空白控制台应用程序使用的。
分发我的应用程序是否需要所有 DLL?
我可以从 MyConsole.deps.json
中一一删除 DLL,直到可执行文件不再起作用,但这似乎不对。
MSFT docs 提到了更大的部署,但是否可以对其进行优化?类似的SO
解决方法
编辑:尝试使用
dotnet publish -r win-x64 -c Release /p:PublishSingleFile=true
来源:https://dotnetcoretutorials.com/2019/06/20/publishing-a-single-exe-file-in-net-core-3-0/
您所引用的是一个非常不同的 .NET 核心 Web 应用程序。您拥有的是 .NET 控制台应用程序,但是,一旦您构建应用程序,根据您正在构建的内容,您可能只需要 /bin/release 文件夹中的 .exe 文件。