gpt4 book ai didi

asp.net - .NET 程序集格式有大小限制吗?

转载 作者:行者123 更新时间:2023-12-04 15:49:21 27 4
gpt4 key购买 nike

我们遇到了一个我以前从未遇到过的有趣问题。我们在 Visual Studio 2008 SP1 中有一个大规模生产 ASP.NET 3.5 SP1 Web 应用程序项目,它使用网站部署项目进行编译和部署。去年一切正常,直到昨天签到后应用程序开始严重失败 BadImageFormatException .

有问题的 checkin 并没有改变任何特别的东西,错误来自应用程序的区域甚至没有改变。我们使用 Reflector 检查了违规方法,发现代码中存在垃圾字符串 ( which .NET Reflector humorously interpreted as Chinese characters )。我们一直在多台机器上复制此内容,因此它似乎与硬件无关。

进一步检查发现那些垃圾串确实不是 存在于用作 aspnet_merge.exe 输入的程序集中部署期间。

aspnet_merge.exe / Web Deployment Project Output Assemblies Properties:

  • Merge all outputs to a single assembly
  • Merge each individual folder output to its own assembly
  • Merge all pages and control outputs to a single assembly
  • Create a separate assembly for each page and control output


在 Web 部署项目属性中,如果我们将合并选项设置为第一个选项(“将所有输出合并到单个程序集”),我们会遇到此问题,但 全部 其他选项完美地工作!

我的问题:有谁知道为什么会这样? aspnet_merge.exe 的功能是否有大小限制(生成的合并 DLL 约为 19.3 MB)?合并 WAP 的输出还有其他已知问题吗?

如果任何程序集格式/aspnet_merge.exe 专家知道任何此类限制,我会很高兴。在我看来,一个 25MB 的程序集虽然很大,但并不离谱。

最佳答案

您可以尝试运行 PEVerify在它上面,看看你得到了什么。

对我来说,这听起来像是一个编码问题……但我不确定为什么会发生这种情况。从技术上讲,可以放入程序集中元数据表的元数据量是有限制的,但我怀疑这是否是问题所在。

如果您在 Ildasm 中打开 exe,您可以看到元数据表的大小。 ,您可以尝试查看统计信息 (View->Statistics) 或元数据表的计数,这是一个 2 步过程: 1. View->Metainfo->Raw:Count,Sizes 2. 按 Ctrl+M

关于asp.net - .NET 程序集格式有大小限制吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1462092/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com