【发布时间】:2010-11-30 12:44:37
【问题描述】:
我们遇到了一个我以前从未遇到过的有趣问题。我们在 Visual Studio 2008 SP1 中有一个大规模生产的 ASP.NET 3.5 SP1 Web 应用程序项目,它使用网站部署项目进行编译和部署。去年一切正常,直到昨天签入后,该应用程序开始严重失败,并显示 BadImageFormatException。
有问题的签入并没有改变任何特别的地方,错误来自应用程序的甚至没有改变的区域。使用 Reflector 我们检查了有问题的方法,发现代码中有垃圾字符串 (which .NET Reflector humorously interpreted as Chinese characters)。我们一直在多台机器上重现此问题,因此它似乎与硬件无关。
进一步检查表明,在部署期间用作aspnet_merge.exe 输入的程序集中不存在这些垃圾字符串。
aspnet_merge.exe / Web 部署项目输出 程序集属性:
- 将所有输出合并到一个程序集中
- 将每个单独的文件夹输出合并到自己的程序集中
- 将所有页面和控制输出合并到一个程序集中
- 为每个页面创建单独的程序集并控制输出
在 web 部署项目属性中,如果我们将合并选项设置为第一个选项(“将所有输出合并到单个程序集”),我们会遇到问题,但 所有 其他选项都可以正常工作!
我的问题:有人知道为什么会这样吗? aspnet_merge.exe 的功能是否有大小限制(生成的合并 DLL 约为 19.3 MB)?合并 WAP 的输出是否还有其他已知问题?
如果任何汇编格式/aspnet_merge.exe 专家知道这样的限制,我会很高兴的。在我看来,就像一个 25MB 的程序集,虽然很大,但并不离谱。
【问题讨论】:
-
你能修复图像,还是删除链接?
标签: asp.net assemblies ilmerge badimageformatexception aspnet-merge