尝试将WebSite作为单个DLL发布时,来自aspnet_merge的OutOfMemoryException

时间:2017-10-06 20:01:57

标签: asp.net visual-studio compiler-errors web-site-project aspnet-merge

我认为这是一个简单的修复方法,但在尝试了几个我在Google上找到的解决方案后(清除系统的温度,通过64位IIS Express运行构建,并在发布模式而不是调试中构建) ,我仍然收到以下错误: enter image description here

正在运行的命令:

C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\aspnet_merge.exe C:\Users\jmckinnon\AppData\Local\Temp\WebSitePublish\cv_net_2008--650083730\obj\Debug\AspnetCompileMerge\TempBuildDir -o xxxxx -copyattrs C:\Users\jmckinnon\AppData\Local\Temp\WebSitePublish\cv_net_2008--650083730\obj\Debug\AssemblyInfo\AssemblyInfo.dll -a -debug 

我通过使用以下预编译设置将zip发布到zip来获取此错误: precompile settings

有几点需要注意:

  • 网站不是WebApplication!
  • 该网站有超过9100个文件
  • 正在运行.Net 4.5
  • 尝试在具有16GB RAM的Windows 7 Professional 64位计算机上构建
  • 我试图构建单个DLL的唯一原因是因为我需要对包的输出进行版本控制。我发现我可以使用AssemblyInfo.vb文件对App_Code进行版本化,但是我可以对所有其他DLL进行版本化的唯一方法(默认情况下没有合并发布为每个页面生成DLL)是在每个页面中添加一个版本指令用1000多页来维护。

1 个答案:

答案 0 :(得分:1)

aspnet_merge是一个32位进程,当它接近2GB的内存使用时似乎崩溃了,这发生在我们的项目中。我们通过making aspnet_merge.exe large address aware using editbin.exe(在VS2015中包含,但在VS2017中似乎没有...)进行了修复。

production.txt