私はWPFアプリケーションで作業していますが、.exeのサイズは1.2MBを超えています。私は最終的な実行可能ファイルのサイズを縮小したいと思います。コードはわずか200 Kbに過ぎず、私はプロジェクトでいくつかの.pngイメージを使用します。これはalltogetherが約20kbを占めます。なぜ最終的な実行ファイルはそれほど大きいのですか?私はILDASMの統計を使って.exeの統計を調べました。以下の出力を投稿する:WPF .exe - large filesize
File size : 1267712
PE header size : 512 (496 used) (0.04%)
PE additional info : 1547 (0.12%)
Num.of PE sections : 3
CLR header size : 72 (0.01%)
CLR meta-data size : 72524 (5.72%)
CLR additional info : 1160002 (91.50%)
CLR method headers : 3189 (0.25%)
Managed code : 28702 (2.26%)
Data : 2048 (0.16%)
Unaccounted : -884 (-0.07%)
Num.of PE sections : 3
.text - 1265152
.rsrc - 1536
.reloc - 512
CLR meta-data size : 72524
Module - 1 (10 bytes)
TypeDef - 58 (812 bytes) 0 interfaces, 0 explicit layout
TypeRef - 250 (1500 bytes)
MethodDef - 647 (9058 bytes) 0 abstract, 0 native, 639 bodies
FieldDef - 216 (1296 bytes) 10 constant
MemberRef - 481 (2886 bytes)
ParamDef - 460 (2760 bytes)
MethodImpl - 11 (66 bytes)
Constant - 11 (66 bytes)
CustomAttribute- 506 (3036 bytes)
StandAloneSig - 73 (146 bytes)
InterfaceImpl - 27 (108 bytes)
PropertyMap - 29 (116 bytes)
Property - 233 (1398 bytes)
MethodSemantic- 304 (1824 bytes)
TypeSpec - 30 (60 bytes)
Assembly - 1 (22 bytes)
AssemblyRef - 13 (260 bytes)
ManifestResource- 2 (24 bytes)
NestedClass - 17 (68 bytes)
EventMap - 5 (20 bytes)
Event - 7 (42 bytes)
MethodSpec - 12 (48 bytes)
Strings - 21669 bytes
Blobs - 18740 bytes
UserStrings - 6244 bytes
Guids - 16 bytes
Uncategorized - 229 bytes
CLR additional info : 1160002
Resources - 1160002
CLR method headers : 3189
Num.of method bodies - 639
Num.of fat headers - 169
Num.of tiny headers - 470
Num.of fat sections - 3
Num.of small sections - 25
Managed code : 28702
Ave method size - 44
ご覧のとおり、CLRの追加情報がほとんどの領域を占めています。私は私のプロジェクトですべてのビジュアルスタイルをStaticResource
として使用していますが、大きな違いはないと思いますか?どのように大きな.exeサイズを説明できますか?
を(リリースモード用のx64でプロジェクトをビルド)UPDATE:
私のビルドオプションは以下のとおりです。
Configuration - Release
Platform - x64
Optimize code - enabled
Allow unsafe code - disabled
Conditional comppilation symbols - none
私はCLRの追加情報に貢献するものを理解しようともっと興味があります。:) 1.2MBのEXEでライブできます。 – jester
コンパイラ/ビルドオプションを表示してください。 Btwの空白も「コード」なので、コードの量は出力サイズに最も適していません。しかし、ここで何かが間違いなく、私ははるかに大きなコードベースを持っています。 – stijn
@stijnがビルドオプションを使用して質問を更新しました – jester