标签: aspnet-merge

.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的程序集,虽然很大,但并不令人发指.

asp.net ilmerge assemblies aspnet-merge badimageformatexception

6
推荐指数
1
解决办法
873
查看次数

ASP.NET MVC 应用程序中的“错误的二进制签名”

我遇到了此处报告的相同问题:“Bad Binary Signature” in ASP.NET MVC application

ASP.Net MVC 站点在本地计算机上运行良好,但是当使用 aspnet_compiler、aspnet_merge 和 msdeploy 的组合进行部署时,加载任何页面都将失败并出现以下错误:

System.BadImageFormatException 错误的二进制签名。(HRESULT 异常:0x80131192)

链接问题中接受的解决方案表明该问题是由使用错误版本的 aspnet_merge 引起的,并且我已经验证从部署中删除 aspnet_merge 步骤可以解决该问题。

我的问题是使用正确的 aspnet_merge 版本似乎无法解决问题。

该 Web 应用程序面向 .Net 4.0 64 位。使用的 aspnet_merge 路径为:“C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools\aspnet_merge.exe”

[编辑]

本地开发是:

  • VS2010 SP1
  • 卡西尼号
  • x64
  • VS11 Beta 和 .Net 4.5 已安装

构建路径是:

  • C:\Windows\Microsoft.NET\Framework\v4.0.30319\
  • C:\Program Files (x86)\IIS\Microsoft Web Deploy V2\

asp.net asp.net-mvc 64-bit aspnet-merge

5
推荐指数
1
解决办法
3697
查看次数