WPF.exe-大文件大小我正在处理WPF应用程序,发现.exe的大小超过1.2MB。我想减少最终可执行文件的大小。代码不超过200Kb,我在项目中使用了几个.png图像,总共占用了大约20kb。为什么最终的可执行文件这么大?我使用ILDASMstats查看.exe统计信息。发布以下输出:文件大小:1267712PE标头大小:512(使用496个)(0.04%)PE附加信息:1547(0.12%)PE部分数量:3CLR标头大小:72(0.01%)CLR元数据大小:72524(5.72%)CLR附加信息:1160002(91.50%)CLR方法标头:3189(0.25%)托管代码:28702(2.26%)数据:2048(0.16%)未计入:-884(-0.07%)Num.ofPE部分:3.text-1265152.rsrc-1536.reloc-512CLR元数据大小:72524模块-1(10字节)TypeDef-58(812字节)0接口,0显式布局TypeRef-250(1500字节)MethodDef-647(9058字节)0抽象,0本机,639主体FieldDef-216(1296字节)10常量MemberRef-481(2886字节)ParamDef-460(2760字节)MethodImpl-11(66字节)常量-11(66字节)CustomAttribute-506(3036字节)StandAloneSig-73(146字节)InterfaceImpl-27(108字节)PropertyMap-29(116字节)Property-233(1398字节)MethodSemantic-304(1824字节)TypeSpec-30(60bytes)A??ssembly-1(22bytes)A??ssemblyRef-13(260bytes)ManifestResource-2(24bytes)NestedClass-17(68bytes)EventMap-5(20bytes)Event-7(42bytes)MethodSpec-12(48bytes))字符串-21669字节Blob-18740字节UserStrings-6244字节Guids-16字节未分类-229字节CLR附加信息:1160002资源-1160002CLR方法标头:3189Num.of方法体-639Num.offat标头-169Num。小标题的数量-470Num.offatsections-3Num.ofsmallsections-25Managedcode:28702Avemethodsize-44正如你所看到的,CLRextras占据了大部分空间,我在我的项目风格中使用所有视觉作为一个StaticResource,我不认为它有什么大的不同?如何解释大.exe大小?(在发布模式x64下构建项目)更新:我的构建选项是:配置-发布平台-x64优化代码-启用允许不安全代码-禁用条件编译符号-无默认样式,所有依赖项的间接引用通常在代码中或在代码中不可见XAML。我不确定,但如果WPF将它们嵌入到exe中,这可能会导致一些开销。您可以通过删除大部分WPF相关代码来测试它,看看这是否会显着影响文件大小。由于它是WPF和可执行文件,因此也可能存在开销。您可以通过将代码放入WPF自定义或用户控件库项目来对此进行测试。这可以通过visualstudio创建。如果生成的DLL比相同内容的EXE文件小得多,则它可能是WPF和可执行文件的组合。总的来说,我发现文件大小开销不足为奇。WPF作为一个大框架,并不以精巧和高效着称。这里的回答有两条评论:“为什么我的.netexe这么大”分析工具?也许它会有所帮助。这可能是嵌入式资源的问题。如果您将图像或其他资源添加到您的项目中,即使文件已从项目中删除,该资源仍将保持嵌入状态。检查项目属性的资源部分。例如,您是否先将图像添加为位图,然后删除文件并添加为png?以上就是《WPF.exe-大文件分享》C#学习教程的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
