views:

2505

answers:

5

Hi, When building a VS 2008 solution with 19 projects I sometimes get:

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

Usually happens after VS has been running for about 4 hours; the only way to get VS to compile properly is to close out VS, and start it again.

I'm on a machine with 3GB Ram. TaskManager shows the devenv.exe working set to be 578060K, and the entire memory allocation for the machine is 1.78GB. It should have more than enough ram to generate the resources.

Thanks in advance for any ideas.

A: 

I used to hit this now and again with larger solutions. My tactic was to break the larger solution down into smaller solutions.

You could also try:

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

Kev
A: 

Sounds like a bug.

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

Toward the bottom, someone suggests adding:

<GenerateResourceNeverLockTypeAssemblies>true</GenerateResourceNeverLockTypeAssemblies>

to your project file. Seems kind of dubious, but worth a shot.

James D
+1  A: 

From http://forums.msdn.microsoft.com/en-US/clr/thread/5154ef26-ccfe-44d5-a322-6804b61ac774/:

Try deleting the .suo file and re-opening the solution.

Stu
A: 

Thanks Stu: That did the trick for me.

kleinman
A: 

Hi ,

can anyone tell me where to add this

Generate resources as mentioned

with samples.

thanks in advance...

rena