.NET程序集格式是否有大小限制?

我们遇到了一个我之前没有遇到过的有趣问题。我们在Visual Studio 2008 SP1中有一个大规模生产的ASP.NET 3.5 SP1 Web App项目,它使用网站部署项目进行编译和部署。去年一切都运行良好,直到昨天办理登机手续后,应用程序开始严重失败
BadImageFormatException
。 有问题的办理登机手续不会改变任何特别特别的错误,而且错误来自应用程序的某些区域,甚至没有更改。使用Reflector我们检查了有问题的方法,发现代码中有垃圾字符串(.NET Reflector幽默地解释为中文字符)。我们一直在几台机器上重现这一点,因此它似乎与硬件无关。 进一步检查显示,在部署期间用作aspnet_merge.exe输入的程序集中不存在这些垃圾字符串。   aspnet_merge.exe / Web部署项目输出   装配属性:         将所有输出合并到单个程序集   将每个单独的文件夹输出合并到其自己的程序集   将所有页面和控制输出合并到单个装配中   为每个页面和控件输出创建单独的程序集    在Web部署项目属性中,如果我们将合并选项设置为第一个选项(“将所有输出合并到单个程序集”),我们会遇到问题,但所有其他选项都可以正常运行! 我的问题:有谁知道为什么会这样? aspnet_merge.exe的功能是否有大小限制(生成的合并DLL大约为19.3 MB)?合并WAP的输出还有其他已知问题吗? 如果任何汇编格式/ aspnet_merge.exe专家知道任何此类限制,我会很高兴。对我来说就像一个25MB的程序集,虽然很大,但并不令人愤慨。     
已邀请:
您可以尝试在其上运行PEVerify并查看您获得的内容。 对我来说这听起来像编码问题......但我不确定为什么会发生这种情况。技术上限制了可以装入程序集中元数据表的元数据量,但我怀疑这是否是问题所在。 如果在Ildasm中打开exe,您可以看到元数据表的大小,您可以尝试查看统计信息(View-> Statistics)或元数据表的计数,这是一个两步过程:1。View-> Metainfo - > Raw:Count,Sizes 2.按Ctrl + M.     
当您尝试在x86上运行x64代码时,是否抛出BadImageFormatException?     

要回复问题请先登录注册