单个.exe文件太大



我正在尝试用C#创建一个可执行文件。但是我不喜欢这个文件有多大。一个简单的Hello World程序本身就有20mb。有没有一个好的方法来缩小它的大小,也许可以删除程序不使用的东西。

下面是HelloWorld测试程序的.csproj文件。我还想声明,如果这对有影响,我正在发布模式下编辑

<OutputType>Exe</OutputType>
<TargetFramework>net5.0</TargetFramework>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<PublishSingleFile>true</PublishSingleFile>
<PublishTrimmed>true</PublishTrimmed>
<IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>

首先,尝试升级到。NET 6(如果可以的话(。修剪后的独立文件。NET 6 Hello World控制台应用程序大约是11MB,而不是20MB。

要进一步了解,您可以尝试禁用框架功能:https://learn.microsoft.com/en-us/dotnet/core/deploying/trimming/trimming-options#trimming-框架库的特点

您可以压缩程序集,尽管这在运行时会带来性能成本:https://learn.microsoft.com/en-us/dotnet/core/deploying/single-file/overview#compress-单个文件应用程序中的程序集

如果您需要更进一步,很快您就可以使用NativeAOT进行AOT编译;这将构建更小的可执行文件,因为它们不需要包含JIT编译器。NativeAOT将与一起发货。NET 7;密切关注。NET 7预览版的说明。

你可能会发现这篇关于这个主题的博客文章很有用:https://www.awise.us/2021/06/05/smallest-dotnet.html

最新更新