&引用;为什么我的.net exe文件如此庞大;分析工具?

&引用;为什么我的.net exe文件如此庞大;分析工具?,.net,assemblies,.net-assembly,.net,Assemblies,.net Assembly,是否有工具可以解释.NET程序集(可执行文件或DLL文件)的大小 在过去,有一个IDE扩展可以详细说明项目使用的空间 它应该显示大型代码文件: 和数据资源: 对于.NET世界有这样的东西吗 我真的认为,移动到.NET,不再需要将整个VCL构建到可执行文件中,可执行文件的大小将会缩小 额外阅读 标准SDK采用ILDASM(IL反汇编程序),在视图菜单中有“统计”选项,该选项将其分解如下: File size : 3072 PE header size

是否有工具可以解释.NET程序集(可执行文件或DLL文件)的大小

在过去,有一个IDE扩展可以详细说明项目使用的空间

它应该显示大型代码文件:

和数据资源:

对于.NET世界有这样的东西吗

我真的认为,移动到.NET,不再需要将整个VCL构建到可执行文件中,可执行文件的大小将会缩小

额外阅读

标准SDK采用ILDASM(IL反汇编程序),在视图菜单中有“统计”选项,该选项将其分解如下:

 File size            : 3072
 PE header size       : 512 (456 used)    (16.67%)
 PE additional info   : 167               ( 5.44%)
 Num.of PE sections   : 2
 CLR header size     : 72                 ( 2.34%)
 CLR meta-data size  : 1572               (51.17%)
 CLR additional info : 0                  ( 0.00%)
 CLR method headers  : 15                 ( 0.49%)
 Managed code         : 77                ( 2.51%)
 Data                 : 512               (16.67%)
 Unaccounted          : 145               ( 4.72%)

 Num.of PE sections   : 2
   .text    - 2048
   .reloc   - 512

 CLR meta-data size  : 1572
   Module        -    1 (10 bytes)
   TypeDef       -    4 (56 bytes)      0 interfaces, 0 explicit layout
   TypeRef       -   15 (90 bytes)
   MethodDef     -    4 (56 bytes)      0 abstract, 0 native, 4 bodies
   FieldDef      -    2 (12 bytes)      0 constant
   MemberRef     -   15 (90 bytes)
   ParamDef      -    4 (24 bytes)
   CustomAttribute-   13 (78 bytes)
   StandAloneSig -    1 (2 bytes)
   Assembly      -    1 (22 bytes)
   AssemblyRef   -    1 (20 bytes)
   Strings       -   571 bytes
   Blobs         -   336 bytes
   UserStrings   -     8 bytes
   Guids         -    16 bytes
   Uncategorized -   181 bytes

 CLR method headers : 15
   Num.of method bodies  - 4
   Num.of fat headers    - 1
   Num.of tiny headers   - 3

 Managed code : 77
   Ave method size - 19

这应该是一个很好的起点。

这个问题是一个很广泛的问题……这个问题令人困惑。你在.NET工作吗?您包含的对话框适用于Delphi Win32应用程序。您正在使用Delphi for.NET吗?如果是这样的话,你应该把它包括在你的标签中(并提供你正在使用的编译器选项的信息)。@KenWhite我确实在.NET中工作。我所包含的对话框是针对Delphi Win32应用程序的(即过去的日子)。此问题适用于.NET和.NET程序集。我碰巧在VisualStudio2010工作。尽管我认为任何有价值的工具都可以分析任何.NET程序集,但正如我所说的,无论编译器用于创建它(包括DFDN),您的问题都是令人困惑的。(事实上,它仍然是。)你提到了“IDE扩展”,但那不是VS IDE扩展,你提到了“构建整个VCL”,并显示了Delphi项目对话框,在你的标签中没有提到任何IDE/语言。@KenWhite这是对那些仍然了解一种拥有4%市场份额的语言的人的一次内心的点头。很好的起点。今天我了解到VisualStudio将我的PNG压缩图像存储为未压缩的BMP。1 MB的PNG图像在最终的8MB组装中占用7.5 MB的空间。sigh@IanBoyd您可以在图像的“属性”菜单中将该图像附加为内容而不是资源。@balexandre“内容”生成选项意味着该文件将位于输出目录中-它们不会嵌入到输出程序集中。听起来OP应该使用清单资源流来存储PNG数据。