asp.net - 尝试将WebSite发布为单个DLL时,来自aspnet_merge的OutOfMemoryException

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

我认为这将是一件简单的事情,但是尝试使用我在Google上找到的几种解决方案(清除系统的温度,通过64位IIS Express运行构建,以及以 Release模式(而非调试)构建)之后,我仍然收到以下错误:
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的发布来获取此错误:
precompile settings

注意事项:
  • 该网站不是Web应用程序!
  • 该网站有9100多个文件
  • 运行.Net 4.5
  • 尝试在具有16GB RAM的Windows 7 Professional 64位计算机上构建
  • 我尝试构建到单个DLL中的唯一原因是因为我需要对软件包的输出进行版本控制。我发现我可以使用AssemblyInfo.vb文件对App_Code进行版本控制,但是我可以对所有其他DLL进行版本控制的唯一方法(默认情况下,没有合并发布会为每个页面生成DLL)是在每个页面中添加一个版本指令,这也是超过1000页需要大量维护。
  • 最佳答案

    aspnet_merge是一个32位进程,似乎在接近2GB内存使用时崩溃,这发生在我们的项目中。我们通过making aspnet_merge.exe large address aware using editbin.exe(似乎包含在VS2015中,但不包括在VS2017中)修复了该问题。
    editbin /LARGEADDRESSAWARE "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\aspnet_merge.exe"

    关于asp.net - 尝试将WebSite发布为单个DLL时,来自aspnet_merge的OutOfMemoryException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46613166/

    相关文章:

    c - 2x2 矩阵乘法

    java - 什么是 java.lang.UnsupportedClassVersionError?

    java - Java编译器无法解析覆盖的JButton的符号

    c# - C#<无法应用于 'long'和 'string'类型的操作数

    c# - Linq to SQL 更新数据

    asp.net - 如何获取本地网络内访问ASP.NET内网页面的用户的用户名?

    c# - ABCpdf 访问登录区域内的页面

    c# - 如何在一个解决方案中的源项目之间共享多个二进制文件?

    c# - 如何使用 Visual Studio 通过 Xamarin UITest 执行 CI

    asp.net - 通过SQL Server SP在aspnet成员中添加用户并分配角色