Visual Studio错误:" GenerateResource"任务意外失败

时间:2020-03-05 18:40:28  来源:igfitidea点击:

当用19个项目构建VS 2008解决方案时,有时会得到:

The "GenerateResource" task failed unexpectedly.
System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
   at System.IO.MemoryStream.set_Capacity(Int32 value)
   at System.IO.MemoryStream.EnsureCapacity(Int32 value)
   at System.IO.MemoryStream.WriteByte(Byte value)
   at System.IO.BinaryWriter.Write(Byte value)
   at System.Resources.ResourceWriter.Write7BitEncodedInt(BinaryWriter store, Int32 value)
   at System.Resources.ResourceWriter.Generate()
   at System.Resources.ResourceWriter.Dispose(Boolean disposing)
   at System.Resources.ResourceWriter.Close()
   at Microsoft.Build.Tasks.ProcessResourceFiles.WriteResources(IResourceWriter writer)
   at Microsoft.Build.Tasks.ProcessResourceFiles.WriteResources(String filename)
   at Microsoft.Build.Tasks.ProcessResourceFiles.ProcessFile(String inFile, String outFile)
   at Microsoft.Build.Tasks.ProcessResourceFiles.Run(TaskLoggingHelper log, ITaskItem[] assemblyFilesList, ArrayList inputs, ArrayList outputs, Boolean sourcePath, String language, String namespacename, String resourcesNamespace, String filename, String classname, Boolean publicClass)
   at Microsoft.Build.Tasks.GenerateResource.Execute()
   at Microsoft.Build.BuildEngine.TaskEngine.ExecuteInstantiatedTask(EngineProxy engineProxy, ItemBucket bucket, TaskExecutionMode howToExecuteTask, ITask task, Boolean& taskResult)   C:\Windows\Microsoft.NET\Framework\v3.5

通常在VS运行约4个小时后发生;使VS正确编译的唯一方法是关闭VS,然后重新启动它。

我正在使用3GB Ram的计算机上。 TaskManager显示devenv.exe工作集为578060K,计算机的整个内存分配为1.78GB。它应该具有足够多的内存来生成资源。

解决方案

回答

我曾经不时使用较大的解决方案来解决这个问题。我的策略是将较大的解决方案分解为较小的解决方案。

我们也可以尝试:

http://stevenharman.net/blog/archive/2008/04/29/hacking-visual-studio-to-use-more-than-2gigabytes-of-memory.aspx

回答

听起来像个虫子。

http://www.codeprof.com/dev-archive/66/6-27-664019.shtm

在底部,有人建议添加:

<GenerateResourceNeverLockTypeAssemblies>true</GenerateResourceNeverLockTypeAssemblies>

到项目文件。似乎有点可疑,但值得一试。

回答

从https://social.msdn.microsoft.com/Forums/vstudio/zh-CN/5154ef26-ccfe-44d5-a322-6804b61ac774/systemoutofmemoryexception?forum=clr:

尝试删除.suo文件,然后重新打开解决方案。